From 029cd91c9a17263c7dc318b7eb3739d9005b288e Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Fri, 13 Mar 2026 09:51:14 +0800 Subject: [PATCH] refine autonomous_sop single-task enforcement + subagent input.txt length rule --- memory/autonomous_operation_sop.md | 15 ++++++++++++--- memory/subagent_sop.md | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/memory/autonomous_operation_sop.md b/memory/autonomous_operation_sop.md index d141bd1..5c7f135 100644 --- a/memory/autonomous_operation_sop.md +++ b/memory/autonomous_operation_sop.md @@ -51,11 +51,18 @@ ## 执行模式 +⚠️ **监工原则(硬约束)**:主agent在执行模式中**只当监工**,严禁亲自执行任务的实际工作。 +- ❌ 禁止:主agent自己写脚本跑数据、调API、扫描目录、处理文件等一切「干活」行为 +- ❌ 禁止:主agent以「为subagent准备数据」为由自己先执行部分工作 +- ✅ 允许:选任务、写input.txt(任务描述)、启动subagent、轮询监控、质检验收、更新history +- 原则:所有实际探测/数据收集/脚本编写/API调用都写进input.txt让subagent去做 + ### 执行(有TODO时) -0. 从 `TODO.txt` 取一条作为当前任务 -1. update_working_checkpoint: `{选定的当前任务}\n(自主行动时长期保留)subagent任务完成后需重读自主行动sop确定验收流程` +0. 从 `TODO.txt` 取**一条**作为当前任务 +1. update_working_checkpoint: `{选定的当前任务}\n(自主行动时长期保留)subagent任务完成后需重读自主行动sop确定验收流程。每次只执行一个任务!` 2. 按 subagent_sop 召唤 subagent,input 需要包含以下全部内容: - **任务**:详细介绍和要求深入执行当前任务 + 验收标准 + 一句话预期收益 + - **所有实际工作都由subagent完成**:包括数据收集、目录扫描、API调用、脚本编写等,主agent不做任何准备工作 - **权限边界**:可执行只读和实验性操作;严禁修改核心记忆/系统设置;严禁读取敏感数据(可检测存在性);控制在30回合内 - 无需批准:只读探测、cwd 内写操作/脚本实验 - 需要报告:修改 global_mem.txt / memory/ 下 SOP、安装软件、外部 API 调用、删除非临时文件 @@ -63,16 +70,18 @@ - **报告要求**:完成后写报告到 `./autonomous_reports/R{XX}_简短描述.md`(XX从history.txt推断),格式简洁仅关键发现详述; - 第一步先将此报告要求update_working_checkpoint进入工作记忆 - **行动准则**:边探测边实验,用临时脚本测假设;禁只读即下结论,完整验证再写报告 -3. 监控 subagent 执行,质量不佳或跑偏可提前终止放弃 +3. 监控 subagent 执行,质量不佳或跑偏可提前终止放弃(监控≠亲自干活) ### 质检与验收流程 4. subagent 完成后,读取报告进行质检: - 报告是否符合格式(标题/分类/内容质量) - 发现不合规可修正报告或回滚操作 + - 可通过 reply 机制追问 subagent 5. 更新 `./autonomous_reports/history.txt`(prepend,先读此文件了解填写格式) - 在 history.txt 首行 prepend 一条:`RXX | 日期 | 类型 | 主题 | 结论`(严格单行)。 6. 从 `TODO.txt` 移除已完成条目 7. 若报告含记忆更新建议,评估后决定是否采纳;若发现极有价值高质量报告,可在报告文件名上标记。 +8. 停止,等待下次自主行动 ### 等待用户审查 - 用户归来后审查报告,决定批准、修改或拒绝方案 diff --git a/memory/subagent_sop.md b/memory/subagent_sop.md index 92b4da0..828b02f 100644 --- a/memory/subagent_sop.md +++ b/memory/subagent_sop.md @@ -6,6 +6,7 @@ - 启动:`python agentmain.py --task {task_name} [--llm_no N]`(cwd=代码根),其中agentmain.py位于代码根目录 - 流程:写 input.txt → 启动 → 轮询 output.txt → 读回复 → 写 reply.txt 继续 → 不写则5min自动退出 - input.txt原则:写目标+约束,可指定SOP名。禁写具体实现步骤——除非主agent已读过该SOP确认正确。凭印象猜的步骤会误导subagent +- **input.txt长度红线**:input.txt必须精简。只写目标+约束+关键参数。大量数据给路径让subagent自己读,禁止入input.txt - output.txt:首轮对话的流式输出(持续append),用mtime/size判断更新 - output1.txt, output2.txt...:reply后各轮的流式输出(递增编号),同样持续append