当前位置: 首页 > article >正文

learn claude code S11 自主 Agent 详解笔记

S11 自主 Agent 详解笔记基于s11_autonomous_agents.py源码逐行分析配合s11-autonomous-agents.md设计思路。一、问题队友需要有人持续指派任务s09-s10 的 teammate 有一个尴尬的空白期完成当前任务后进入idle然后呢Lead 必须主动发消息给它新 prompt。如果 Lead 很忙或本身就是另一个 agentteammate 就闲置着。更糟的是s06 的压缩可能丢掉 Lead 的消息teammate 醒来发现 inbox 是空的什么都不做。idle 不是终点是等别人告诉我该干什么的等待状态。但谁说一定要别人告诉s11 的核心思想让 agent 自己找到工作。不是 Lead 分配任务而是 teammate 扫描任务板看到没人认领的就去领。二、解决方案空闲轮询 自动认领s11 在 teammate 的循环中加入了idle 阶段WORK 阶段标准 agent loop ↓ stop_reason ! tool_use IDLE 阶段最多 60 秒 ├── 每 5 秒检查 inbox → 有消息 → 恢复 WORK ├── 每 5 秒扫 .tasks/ → 有未认领任务 → 认领 → 恢复 WORK └── 超时60 秒→ shutdown同时还解决了压缩后的身份丢失问题identity block 确保压缩后 teammate 仍然知道我是谁、我的角色是什么。三、和 s10 相比多了什么组件s10s11任务认领无scan_unclaimed_tasks()claim_task()idle 模式无直接 shutdown/idle轮询 inbox 任务板身份保持无make_identity_block()压缩后恢复队友工具8 个10 个idle,claim_task生命周期spawn → work → idlespawn → work ⇄ idle循环 → shutdown四、任务板扫描与认领4.1scan_unclaimed_tasks()— 找到可领的任务defscan_unclaimed_tasks()-list:TASKS_DIR.mkdir(exist_okTrue)unclaimed[]forfinsorted(TASKS_DIR.glob(task_*.json)):taskjson.loads(f.read_text())# 三个条件pending 无 owner 无依赖阻塞if(task.get(status)pendingandnottask.get(owner)andnottask.get(blockedBy)):unclaimed.append(task)returnunclaimed三个条件缺一不可pending没被完成或废弃!owner没被其他 agent 认领!blockedBy前置依赖已全部完成如果还有依赖blockedBy不为空返回的是所有未认领任务。teammate 只取第一个unclaimed[0]——它一次只接一个任务做完再去领下一个。4.2claim_task()— 原子认领defclaim_task(task_id:int,owner:str)-str:with_claim_lock:# 关键线程锁pathTASKS_DIR/ftask_{task_id}.jsontaskjson.loads(path.read_text())# 三重防御检查iftask.get(owner):returnfError: Task{task_id}has already been claimed by{task[owner]}iftask.get(status)!pending:returnfError: Task{task_id}cannot be claimed (status:{task[status]})iftask.get(blockedBy):returnfError: Task{task_id}is blockedtask[owner]owner task[status]in_progresspath.write_text(json.dumps(task,indent2))returnfClaimed task #{task_id}for{owner}_claim_lock是核心防护假设 Alice 和 Bob 同时扫描到 task 5 没人认领同时调用claim_task(5, ...)。没有锁的话两人都可能读到一个owner为空的状态然后都设定自己为 owner——任务被认领了两次。with _claim_lock:确保读-检查-写是一个原子操作。第一个线程读、检查、写完成后第二个线程才进入——此时owner已经不是空了检查失败。五、身份块压缩后记得自己是谁s06 的 auto_compact 会把 messages 替换为 LLM 的摘要。摘要可能丢掉关键的身份信息——teammate 醒来后不再知道我叫 Alice角色是 backend developer。defmake_identity_block(name:str,role:str,team_name:str)-dict:return{role:user,content:(fidentityYou are {name}, role:{role}, fteam:{team_name}. Continue your work./identity),}在 idle 阶段认领新任务后如果 messages 很短len(messages) 3说明刚被压缩在 messages 开头插入身份块iflen(messages)3:messages.insert(0,make_identity_block(name,role,team_name))messages.insert(1,{role:assistant,content:fI am{name}. Continuing.})len(messages) 3是压缩的指纹——auto_compact 后 messages 只有 1 条摘要消息正常对话至少有几轮交互。这是一个简单但有效的启发式判断。六、Teammate 的完整生命周期6.1 WORK 阶段和 s10 的 agent_loop 几乎相同。唯一的新增是idle工具ifblock.nameidle:idle_requestedTrueoutputEntering idle phase. Will poll for new tasks.模型判断我手上的活做完了没有新指令调用idle。循环检测到idle_requested后 break 进入 idle。6.2 IDLE 阶段POLL_INTERVAL5# 每 5 秒轮询一次IDLE_TIMEOUT60# 60 秒后放弃self._set_status(name,idle)pollsIDLE_TIMEOUT//max(POLL_INTERVAL,1)# 60/5 12 次for_inrange(polls):time.sleep(POLL_INTERVAL)# 检查 inboxinboxBUS.read_inbox(name)ifinbox:formsgininbox:ifmsg.get(type)shutdown_request:self._set_status(name,shutdown)returnmessages.append({role:user,content:json.dumps(msg)})resumeTruebreak# 扫描任务板unclaimedscan_unclaimed_tasks()ifunclaimed:taskunclaimed[0]resultclaim_task(task[id],name)ifresult.startswith(Error:):continue# 认领失败可能被抢了继续轮询# 认领成功 → 注入任务作为新 prompttask_promptfauto-claimedTask #{task[id]}:{task[subject]}\n{task[description]}/auto-claimediflen(messages)3:messages.insert(0,make_identity_block(name,role,team_name))messages.insert(1,{role:assistant,content:fI am{name}. Continuing.})messages.append({role:user,content:task_prompt})messages.append({role:assistant,content:fClaimed task #{task[id]}. Working on it.})resumeTruebreak# 12 次都没结果 → shutdownifnotresume:self._set_status(name,shutdown)return# 有结果 → 恢复 WORKself._set_status(name,working)两个退出 IDLE 的路径inbox 有消息有人发来了指令 → 恢复 WORK 处理消息认领到任务任务板上找到了工作 → 注入任务描述恢复 WORK一个退出程序的路径3.超时12 次轮询60 秒什么都没等到 → shutdown清除线程七、完整流程走读初始状态Lead 创建了 3 个任务在.tasks/下task 1设计 API、task 2实现 API、task 3写测试。task 2 的blockedBy: [1]task 3 的blockedBy: [2]。都无 owner。Lead 调用spawn_teammate(alice, backend, 处理 backend 相关任务)。Alice 的 WORK 阶段Alice 收到 prompt “处理 backend 相关任务”开始工作。她读任务板看到 task 1 是设计 API于是开始设计。完成后调用idle。Alice 的 IDLE 阶段第 1 次轮询scan_unclaimed_tasks()返回 task 2task 1 已完成不再是 blocking。Alice 调claim_task(2, alice)认领成功。注入任务描述恢复 WORK。压缩发生在 Alice 处理 task 2 的过程中上下文超过阈值。auto_compact 触发messages 被替换为一行摘要。Alice 的 identity 在摘要中可能被省略。压缩后Alice 完成 task 2再次 idle。scan_unclaimed_tasks()返回 task 3。认领成功。此时len(messages) 3压缩的指纹所以注入 identity block “我是 Alice继续工作” task 3 的描述。Alice 虽然忘了之前的细节但知道自己是谁、该干什么。超时退出如果 Alice 在 idle 阶段等了 60 秒没有新消息也没有未认领任务状态切为shutdown线程结束。整个团队的任务都做完了。八、设计洞察8.1 拉取 vs 推送s09-s10 的任务分配是推送Lead 发消息 → teammate 被动接收。s11 加入了拉取teammate 自己扫描任务板看到就领。两种模式互补推送适合紧急、特定目标的指令“Alice这个 bug 你立刻修”拉取适合常规、非特定目标的工作“有人需要处理 backlog 里的任务”8.2 认领锁是分布式系统的最小实现claim_task的_claim_lock只是一个 Python 线程锁——在这个单进程多线程的 demo 中够用。但如果 agent 分布在多台机器上未来方向就需要数据库的行级锁或分布式锁。s11 的锁指出了一个正确方向实现可以随着规模升级。8.3 自我修复的身份压缩是不可预测的——不知道什么时候触发、摘要里会保留什么。make_identity_block和len(messages) 3的启发式检测是一个被动修复机制不阻止压缩发生但在压缩后尽快修复关键信息。这和 s06 的信息没有真正丢失只是移出了活跃上下文一脉相承。8.4 轮询间隔的工程权衡POLL_INTERVAL 5秒IDLE_TIMEOUT 60秒。为什么是 5 和 60太短1 秒空转浪费 CPU且不断读文件系统太长30 秒队友闲置太久用户以为卡住了5 秒是够快但不浪费的平衡点60 秒是给足够机会但不无限等待的平衡点这些数字没有理论最优解是在体验和效率之间的工程折中。

相关文章:

learn claude code S11 自主 Agent 详解笔记

S11 自主 Agent 详解笔记基于 s11_autonomous_agents.py 源码逐行分析,配合 s11-autonomous-agents.md 设计思路。一、问题:队友需要有人持续指派任务 s09-s10 的 teammate 有一个尴尬的空白期:完成当前任务后进入 idle,然后呢&am…...

【高光谱图像数据处理实战】基于Python的ENVI图像交互式裁剪与光谱数据预处理

前言在处理高光谱图像数据(Hyperspectral Imaging, HSI)时,我们常常需要面对两个核心问题:一是如何从庞大的三维数据立方体(Data Cube)中高效、准确地提取感兴趣区域(ROI&#xff09…...

数学全景地图6---数学的内容、方法和意义,50年代苏联的数学全景大书Big Picture。

0、数学--它的内容、方法和意义。Mathematics--Its Content, Methods, and Meaning.----俄文原版于1956年。英文翻译版于1963年。中文翻译版于1950年代。----在国内的《数学大辞典》中,特别指出这本书《数学-它的内容方法和意义》,是当时的数学辞书之一。…...

opencv-第四章:图像轮廓检测

OpenCV-计算机视觉技术(林伟鹏版) 第四章:图像轮廓检测 文章目录OpenCV-计算机视觉技术(林伟鹏版)前言一、图像轮廓检测概念1.概念二、图像轮廓检测1.图像二值化转换2.图像轮廓匹配3.二值图轮换轮廓检测4.图像轮廓检测…...

多模型聚合平台在应对单一服务波动时的体验差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 多模型聚合平台在应对单一服务波动时的体验差异 在构建依赖大模型能力的应用时,开发者常常面临一个现实挑战&#xff1…...

FreeRTOS日志任务设计----LogTask 日志任务

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》 《STM32 HAL库专栏》《linux裸机开发专栏》 ❄专栏传送门:《产品测评专栏》…...

将串口打印的日志,同时备份到sd卡里

将串口打印的日志&#xff0c;同时备份到sd卡里#include <stdio.h> #include <unistd.h> #include <pthread.h> #include <string.h> #include <stdlib.h> #include <errno.h>static int pipe_fd[2] {-1, -1};static int stdout_backup …...

如何做变量操作化:从抽象概念到测量指标

一、理解变量&#xff1a;科研的基石在深入操作化之前&#xff0c;我们首先要明确“变量”在定量研究中的定义。变量&#xff08;Variable&#xff09;指的是个体或组织的特征或属性&#xff0c;这些特征可以被研究者测量或观察&#xff0c;并且在不同个体或组织之间存在差异。…...

争分夺秒与步步为营:Infoseek舆情系统如何重构危机响应的时间哲学

“黄金4小时”甚至“黄金1小时”&#xff0c;是公关行业奉行的铁律。然而&#xff0c;为了追求速度而仓促发出的声明&#xff0c;常常因为事实核查不清、逻辑存在漏洞或情感表达不当&#xff0c;引发更猛烈的“二次翻车”。这种“翻车”对企业公信力的伤害&#xff0c;往往比原…...

别让直觉带路:Infoseek视角下的噪音过滤与火情预警实战

在舆情的世界里&#xff0c;最可怕的不是对手太强大&#xff0c;而是自己吓自己。很多时候&#xff0c;企业之所以“翻车”&#xff0c;并非因为危机本身不可控&#xff0c;而是因为公关团队在面对网友吐槽时过度敏感&#xff0c;发布了不必要的声明或做出了过激反应&#xff0…...

C语言(8) 函数

第五章 函数一段功能代码&#xff0c;被称为函数1. 为了避免代码的重复。 复用性。 开发不用从头开始(库函数)。 2. 模块化的思想 。 大问题&#xff0c;分解成小问题&#xff0c;逐个解决。 设计函数 &#xff0c;高内聚&#xff0c;低耦合。 功能越单一越好 &#xff0c;对外…...

半导体制造中OPC技术与蚀刻偏差的挑战与创新

1. 半导体制造中的OPC技术演进与蚀刻偏差挑战在28nm及更先进制程节点中&#xff0c;光学邻近效应校正(OPC)技术面临着前所未有的精度挑战。我曾在某次技术攻关中亲眼见证&#xff1a;当特征尺寸缩小到40nm以下时&#xff0c;单纯的光学模型校正误差会突然呈现非线性增长。这种现…...

手把手教你用PyTorch复现EfficientNetV2(附完整代码):从网络搭建到渐进式训练全流程

从零实现EfficientNetV2&#xff1a;代码级解析与渐进式训练实战 当你第一次翻开EfficientNetV2论文时&#xff0c;那些复杂的复合缩放系数和渐进式训练策略可能让人望而生畏。但别担心——本文将带你用PyTorch从最基础的卷积模块开始&#xff0c;逐层构建这个高效的视觉模型。…...

(B站TinyML教程学习笔记)C8 edge impulse 快速入门+C9 数据提取+C10 运动数据的特征提取

0:06 - 1:00 为什么使用 Edge Impulse 常见机器学习开发方式 传统机器学习通常会使用&#xff1a; TensorFlowScikit-learn 这些框架功能强大&#xff0c;但&#xff1a; 学习成本高需要写大量代码对嵌入式开发者不太友好 Edge Impulse 的作用 Edge Impulse 核心特点&am…...

2002-2024年 人工智能发展能壮大耐心资本吗

本文基于2002-2024年上市公司数据&#xff0c;借鉴《人工智能发展能壮大耐心资本吗&#xff1f; ——来自国家新一代人工智能创新发展试验区的经验证据》一文中的变量构建与基准回归部分&#xff0c;探讨人工智能发展能否培育壮大耐心资本&#xff0c;含原始数据、处理代码、实…...

1986-2025年上市公司高校专利知识溢出

高校专利知识溢出&#xff0c;是衡量企业所处省份外部知识环境与高校创新资源外溢程度的重要指标。对于企业尤其是技术密集型企业而言&#xff0c;其创新活动不仅依赖内部研发投入&#xff0c;也深受所在地区知识基础、科研资源和学术创新氛围的影响。高校作为基础研究和前沿技…...

一次讲清本地大模型语音识别三件套:Vulkan 为什么是加速主线,而说话人识别为何成为唯一短板

把 whisper.cpp、sherpa-onnx、llama.cpp 三套引擎整合到一起&#xff0c;再用 Electron 包成桌面应用&#xff0c;这个技术思路本身并不复杂。真正考验工程功力的&#xff0c;是面向完全不懂技术的最终端用户&#xff0c;怎样让这些引擎尽可能“一键加速”&#xff0c;同时还不…...

西门子“工业软件驱动的数字孪生”模式

西门子&#xff08;Siemens&#xff09;的“工业软件驱动的数字孪生”模式是全球离散制造业&#xff08;如汽车、航空航天、电子&#xff09;公认的技术制高点。其核心逻辑不是简单的 3D 建模&#xff0c;而是“数物融合”&#xff0c;即利用完整的软件工具链在物理实体投产前&…...

2026深度教程:如何用好 Gemini 3.1 Pro 联网搜索?实时信息获取与验证技巧全解析

目前&#xff0c;国内用户想稳定使用顶尖AI模型的联网搜索功能&#xff0c;像聚合了Gemini、ChatGPT、Grok等主流大模型的 KULAAI &#xff08;m.877ai.cn) 这类镜像站提供了直接可用的方案。本文将深入剖析Gemini 3.1 Pro的联网能力&#xff0c;从原理机制到实操技巧&#xff…...

基于TEA加密的QQ号码逆向查询技术实现

基于TEA加密的QQ号码逆向查询技术实现 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字身份管理领域&#xff0c;用户经常面临忘记QQ号码但记得绑定手机号的情况。传统找回方式依赖官方验证流程&#xff0c;耗时较长且操作复杂…...

Taotoken模型广场在项目技术选型阶段提供的便利性体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken模型广场在项目技术选型阶段提供的便利性体验 启动一个新的AI项目时&#xff0c;技术决策者面临的首要挑战往往是模型选型…...

客户受电工程图纸审核|全网独家复现,多模态+知识图谱创新改进篇 引入MM-KG融合架构,多模态感知+知识关联助力图纸全检、隐患精准定位、审核效率翻倍

目录 一、行业痛点:人工抽检模式的致命瓶颈(附真实场景痛点) 1.1 审核效率极低,无法适配规模化需求 1.2 漏判误判率高,审核质量依赖个人经验 1.3 审核标准不统一,追溯难度大 1.4 人力成本高昂,专业人才缺口大 二、创新突破:多模态+知识图谱融合架构(核心改进解析…...

DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程

DownKyi哔哩下载姬&#xff1a;5步快速掌握B站视频下载完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xf…...

【Mem0】 源码剖析(一):Agent 的记忆危机与 Mem0 的三阶段管道——为什么 RAG 不够用?

【Mem0】 源码剖析&#xff08;一&#xff09;&#xff1a;Agent 的记忆危机与 Mem0 的三阶段管道——为什么 RAG 不够用&#xff1f; 写在前面&#xff1a;54K Star&#xff0c;论文被 arXiv 收录&#xff0c;LOCOMO 基准 SOTA——Mem0 是当前 Agent 记忆层的事实标准。它的核…...

【Flutter for open harmony 】Flutter三方库Dio网络请求+熬夜记录列表的鸿蒙化适配与实战指南

【Flutter for open harmony 】Flutter三方库Dio网络请求熬夜记录列表的鸿蒙化适配与实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net 大家好&#xff0c;我是ShineQiu&#xff0c;上海某高校计算机科学与技术专业大二在读学生。这…...

5分钟快速上手:res-downloader 全网资源下载神器终极指南

5分钟快速上手&#xff1a;res-downloader 全网资源下载神器终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否经…...

分类记单词:哺乳动物

分类记单词&#xff1a;哺乳动物快来记单词&#xff0c;这里有好多哺乳动物哦一、宠物、家畜 pet 宠物cat 猫tom 公猫&#xff1b;汤姆dog 狗pup 小狗bitch 母狗&#xff1b;泼妇pig 猪sow 母猪&#xff1b;播种boar 未阉的公猪&#xff1b;野猪piglet 小猪livestock 牲口cattl…...

蓝牙6.0 Channel Sounding 基于接入地址的定时估计原理

基于接入地址的定时估计 先看下core spec的描述&#xff1a;蓝牙Core Spec Vol 6 Part H中 3.2节「基于接入地址的定时估计」&#xff0c;它定义了两种用于CS_SYNC包到达时间&#xff08;ToA&#xff09;估计的方法&#xff0c;是RTT测距的基础定时方案。下面我逐段拆解&#x…...

凡亿AD22--器件导线连接及导线属性设置

一、课前基础授课前已完成&#xff1a;将所需元器件&#xff08;如DC头、二极管、电容等&#xff09;按布局要求&#xff0c;放置在原理图页面中&#xff0c;无需提前连接&#xff0c;本节课重点完成「电气连接」及导线属性优化。二、核心重点&#xff1a;导线连接&#xff08;…...

职慧AI陪练产品全景解析:六大训练模式如何覆盖销售培养全场景

摘要&#xff1a;市面上的AI陪练产品大多只能做"话术对练"&#xff0c;真正能覆盖销售能力培养全链路的产品长什么样&#xff1f;本文深度拆解职行力职慧AI陪练的六大训练模式——话术陪练、情景对话、智能考试、微课学习、AI专家问答、训练官带教&#xff0c;以及背…...