98、【Agent】【OpenCode】task 工具提示词(子 Agent)
【声明】本博客所有内容均为个人业余时间创作所述技术案例均来自公开开源项目如GithubApache基金会不涉及任何企业机密或未公开技术如有侵权请联系删除背景上篇 blog【Agent】【OpenCode】task 工具提示词主/子 Agent分析了启动一个全新的子 Agent 有代价有冷启动成本如果只是为了该两行代码等简单任务动用子 Agent 确实是既麻烦又浪费资源但在复杂的工程场景下如果不把任务外包出去主 Agent 很快就会因为上下文膨胀而崩溃然后从三个方面进行了分析省下更昂贵的历史上下文大模型是按 Token 收费的而且每次对话都要把之前的上下文重新喂给模型一遍防止主 Agent 失忆主 Agent 作为总指挥它需要时刻记住用户的期望是什么项目的整体规范是什么当前的最终目标是什么子 Agent 和主 Agen 的背景共用缓存复用系统在派生子 Agent 时往往不会再重新生成一遍提示词而是会直接复用主 Agent 已经渲染好的底层 Prompt 字节这就是用少量的启动成本去规避天价的崩溃风险下面继续分析OpenCode之前 blog 里有这么一张示意图从这张图可以看出来子 Agent 智能体依然连接的是远端大模型并不是在本地电脑上的一个新程序而是远端 AI 系统在云端临时开辟的一个独立分身或者说专属工作空间其中子 Agent 在执行任务时也需要推理草稿和中间过程和主 Agent 一样一步步思考试错读取文件才能得出一个靠谱的结论但这里有一个比较巧妙的隔离设计有两个特点黑盒作业独立的临时记忆子 Agent 在执行任务时系统会为其开辟一个完全独立临时的上下文窗口sub_messages在黑盒内部子 Agent 视角它拥有完整的思考能力会经历【读文件 - 发现线索 - 推理草稿 - 调用工具 - 修正思路】等全过程这些海量的中间步骤推理细节全部会被记录到这个专属的上下文里当然没这些过程子 Agent 也没发工作而在黑盒外部主 Agent 视角主 Agent 根本看不见也摸不着子 Agent 内部的这些细节它只负责发出指令然后等待结果阅后即焚一次性草稿当子 Agent 完成了所有复杂的思考和操作提炼出最终结论后会发生两件事只传回精华部分子 Agent 会把那任务执行的过程压缩成一句精简的总结比如【已确认项目使用 pytest 框架】然后把这句总结交给主 Agent彻底销毁现场这是最关键的哪个装满了子 Agent 推理草稿工具调用记录的临时上下文窗口会被直接丢弃这就好比一个学生在草稿纸上做了一道极其复杂的数学题需要草稿纸临时上下文没有草稿纸上的演算过程根本算不出答案但交卷时只需要把最终答案写在试卷上而草稿纸则会被揉成一团扔掉在上面这个比喻中学生 子 Agent草稿纸 子 Agent 独立的上下文窗口会消耗大量 Tokens但用完就丢试卷上的答案 返回给主 Agent 的总结阅卷老师 主 Agent它只看到了最终答案但不知道学生刚才在草稿纸上涂改了多少次如果不用子 Agent主 Agent 就得在那张珍贵的正式答卷主对话上下文中打草稿如果写到一半发现错了不能擦只能划掉重写最后整张卷子密密麻麻全是涂改痕迹上下文污染不仅用户看得头晕而且下次再提问时模型还得再被迫重新阅读那些毫无意义的涂改过程浪费资源所以子 Agent 的核心价值在于允许 AI 肆无忌惮地消耗廉价草稿纸 Token 去进行深度思考和试错然后通过物理隔绝的方式保证主对话永远感觉清爽高质量用一点额外的启动成本换取系统长期的稳定与省钱OK本篇先到这里如有疑问欢迎评论区留言讨论祝各位功力大涨技术更上一层楼更多内容见下篇 blog