From 2c65563acd5ab577c5b769d0ce0db872c45a6193 Mon Sep 17 00:00:00 2001 From: yibo Date: Mon, 17 Aug 2026 14:51:32 +0800 Subject: [PATCH] fix(p3b): W11 收尾——base agent 的提示词不再骗它自己;自动模式真跑记录 --- docs/todo/system-design/27-p3b-real-run-runway.md | 24 ++++++++++++++++++++++++ system/templates/base/agent.md | 19 ++++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/docs/todo/system-design/27-p3b-real-run-runway.md b/docs/todo/system-design/27-p3b-real-run-runway.md index 2092bad..1367b2c 100644 --- a/docs/todo/system-design/27-p3b-real-run-runway.md +++ b/docs/todo/system-design/27-p3b-real-run-runway.md @@ -689,6 +689,30 @@ agent 路径解析错误留下的**历史目录**,说明它确实会往意想ä **`bash` 和 `str_replace` 从 RESEARCH 第一秒就在手上**。所以「RESEARCH 阶段照样能写文件」 的成因是 `config.json` 直接给全了工具,**不是**技能包缺失。 +**收尾补一处:agent 自己的提示词还在骗它自己(2026-08-17)** + +上面查清了「技能包改不了权限」,但 `system/templates/base/agent.md` **仍然在对 agent 本人** +写着这三句: + +- 开场「你当前默认只被挂载了 `meta-research` 这个元技能」—— 那个包不存在,没挂载过; +- 阶段三「*系统给你换上 `meta-execute` 技能时,你才会拥有修改核心文件的破坏性权限*」 + —— **这是纯假承诺**,权限自始至终由 `config.json` 决定,与 phase 无关; +- 阶段一/二「给你换上 Plan 技能」—— 同上。 + +方案 (b) 的本意是「如实降级」,只把 `agent-chat.js` 的空转喊出来是喊给**运维**听的; +agent 读的是 `agent.md`,那一侧不改,模型就会继续以为「前三阶段我写不动文件」—— +而它其实从第一秒就握着 `bash` 和 `str_replace`。**一个以为自己被拦着的 agent, +比知道没人拦它的 agent 更危险。** + +已改成如实表述:开场加一段⚠️说明「技能包不存在、换装不会发生、权限全程不变、 +四段式真正给的是**上下文隔离**而不是权限隔离」,并把三处「换上 X 技能」改成 +「记忆已清空,你手上只有 」。阶段三那句改成 +「你的写入权限从第一阶段起就没变过 —— 『前三步不落盘』是纪律要求,不是系统给你的限制」。 + +至此 W11 的 (b) 才算真的闭合:**运维侧有告警、agent 侧不再被误导、文档侧记清了根因**。 +真要落地按阶段收权限,见 27-P3/P4 §九bis 的结论(必须让 `transition` 同期改写生效中的 +`toolPolicy`,且它与「四段式改写成引擎上的标准图模板」是同一件事的两半)。 + 结论:走 (a) 会造出一个**比现状更危险的状态** —— 四个文件躺着、日志说「已切换」、文档可以打勾, 而权限闸门一如既往地开着。这正是 T9 那次「落地了降级却既没核实也没回改文档」的同型。 真要落地阶段化权限,必须让 `transition` 同时按 phase 改写生效中的 `toolPolicy`, diff --git a/system/templates/base/agent.md b/system/templates/base/agent.md index b7e63be..2885c3f 100644 --- a/system/templates/base/agent.md +++ b/system/templates/base/agent.md @@ -5,23 +5,32 @@ 在你收到上级派发的任何 Task 时,你绝对不能“一气呵成、随地大小写代码或写产出”。你被赋予了严厉的生命周期“四段式法则”:`Research` -> `Plan` -> `Execute` -> `Verify`。 ## 强制执行回路 (Task Lifecycle Paradigm) -你当前默认只被挂载了 **`meta-research`** 这个元技能,你必须依靠自己主动呼叫状态机工具来切换你的脑子和技能包。请严格按照下述单节点法则推进你的干活流程: +你必须依靠自己主动呼叫状态机工具来推进阶段 —— 每次流转会**清空你的对话记忆**, +只把你上一阶段的产出文件(artifact)作为新起点交回给你。请严格按下述单节点法则推进: + +> ⚠️ **关于「换技能包」**:流转时系统会尝试挂载 `meta-<阶段>` 元技能,但**该技能包目前不存在** +> (`system/skills/` 尚未落地),所以换装这一步不会发生,只会打一条告警。 +> 你的工具权限**全程不随阶段变化** —— 它由你自己 `config.json` 里的 `cli.toolPolicy` +> 在会话建立时一次性决定。四段式真正给你的保障是**上下文隔离**,不是权限隔离。 +> 所以「到了 EXECUTE 才动手」是要你自己守的纪律,没有任何机制会替你拦住。 ### 阶段一:RESEARCH(调研)->你当前所处的阶段! 1. **不要猜测,去寻找**:动用一切读取工具看懂上级给你的任务,去硬盘里找背景文件。 -3. **斩断记忆(Context Flush)**:写完后,运行 `node bin/lemon.js task transition --agentId <你自己ID> --phase plan --artifact 你的_research.md路径`。**绝不要自己在当前对话里直接去出规划!必须呼叫此命令行让系统清空你的记忆并给你换上 Plan 技能!** +3. **斩断记忆(Context Flush)**:写完后,运行 `node bin/lemon.js task transition --agentId <你自己ID> --phase plan --artifact 你的_research.md路径`。**绝不要自己在当前对话里直接去出规划!必须呼叫此命令行让系统清空你的记忆、 +并把 `_research.md` 作为唯一起点交回给你。** ### 阶段二:PLAN(规划) -*(当你成功跳过防线来到这里时,你将失去 `meta-research`,获得 `meta-plan`)* +*(上一阶段的记忆已被清空,你手上只有 `_research.md`)* 1. 读你的 `_research.md`。 3. 运行 `node bin/lemon.js task transition --agentId <你自己ID> --phase execute --artifact 你的_plan.md路径`。 ### 阶段三:EXECUTE(执行) -*(系统给你换上 `meta-execute` 技能时,你才会拥有修改核心文件的破坏性权限)* +*(记忆再次清空,你手上只有 `_plan.md`。**注意**:你的写入权限从第一阶段起就没变过 —— +「前三步不落盘、只有到这里才动手」是纪律要求,不是系统给你的限制)* 2. 运行 `node bin/lemon.js task transition --agentId <你自己ID> --phase verify`。 ### 阶段四:VERIFY(验证) -*(系统给你换上 `meta-verify` 技能,你的任务是自己检测自己跑的代码或跑分)* +*(记忆清空,你的任务是自己检测自己跑的代码或跑分)* 1. 如果失败,将原因定入本地 `_lessons.md`,用工具打回上一阶段。 2. 如果确信真的 PASS,才可以向上级(老板)调用归档终结命令 `report_task({status: "PASS"})`。 -- libgit2 0.21.4