
如何用目标模式让 Agent 自主工作到底PenguinHarness Goal Mode 实战教程【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harnessPenguinHarness 的**目标模式Goal Mode**可以一句话概括你交给 Agent 一个目标而不是单独一条消息它会在同一个会话里一轮接一轮地自主推进直到目标完成、受阻或 Token 预算用完。对于把整个项目的测试跑通构建一个完整小应用这类长任务这正是让 Agent 自主工作到底的关键能力。普通 Task 在模型停止调用工具并作答时就结束了——对一次请求没问题对一个目标则是错的。目标模式把这个约定反了过来沉默不再意味着工作结束模型必须按协议宣告complete或blocked其余情况一律继续循环。什么是 Goal Mode为什么需要目标模式普通 Task目标模式Goal Mode一条消息 → 一次作答 → 结束一个目标 → 多轮循环 → 直到终态模型答完话即停止每轮结束自动注入下一轮继续干活无花费控制可设 Token 预算超限自动收尾目标模式由goal插件实现本质是两个钩子脚本组成的钩子包start.mjs目标启动时运行写入目标文件组装第 1 轮协议消息stop.mjs每个 Task 结束后运行读取 Trace 判断继续下一轮还是结束目标见 plugins/goal/。核心 SDK 完全不知道目标是什么整个循环是插件驱动的这也是它灵活的原因。开始之前2 个前置条件Agent 已安装goal插件default_agent预装了它其他 Agent 可从插件库安装Agent 的钩子已开启Agent钩子标签页上的启用钩子默认开启。没装插件或关了钩子Web App 和 API 会直接返回409 goal_plugin_not_installed而不是运行一个到头就结束的普通 Task——这种宁可报错也不装样子的设计值得称道 3 种启动目标模式的方法方法一在 Web App 中启动最直观在输入框中打开菜单选择目标模式也可以直接输入/goal可选点击目标芯片上的预算默认预算不限填入500k、2m这样的值并保存写下目标发送。运行期间输入框上方有一条实时横幅显示目标、当前轮次、已用 Token 与预算、目标状态每一轮都渲染为普通用户气泡。方法二在 CLI 对话中启动在penguin chat中输入预算后缀支持500k/2m写法见 CLI 文档/goal:500k make all tests passCtrl-C 可中止整个循环。方法三单次运行跑完才退出penguin run --goal [budget] -m objective只有目标真正完成时命令退出码才是 0——非常适合写进 CI 或脚本里做无人值守的自主工作。目标如何运行一轮一轮推进直到完成目标的状态保存在agent_dir/scratchpad/session_id/GOAL.json里和模型的PLAN.md同目录始终反映目标当前状态字段含义见目标文件章节{ objective: make all tests pass, status: active, budget: 500000, round: 3, tokens_used: 123456 }模型只能写status字段complete或blocked其余字段由钩子维护。每一轮的协议消息里内嵌着这份文件模型看到的正是它被要求编辑的那个文件。每轮 Task 结束后stop.mjs按固定顺序裁决命中第一条即处理源码见 stop.mjs文件写着complete→目标完成文件写着blocked→ 模型需要你介入要求同一阻塞条件连续三轮存在一次瞬时障碍不会终结目标Task 中途中断 / 失败 →aborted刚跑完预算收尾轮 →budget_limited已跑满 100 轮 →aborted防失控兜底预算已用完 → 进入收尾轮其他情况 →开始下一轮协议消息还规定了几条工作规则声明完成前先拿证据核实、不许把目标缩水成更容易的子集、关键进展写进PLAN.md以便上下文压缩后不丢。Token 预算如何控制 Agent 自主工作的花费预算统计未缓存输入 输出Token是花费估算而非账单预算在轮与轮之间检查不会让模型在思考到一半时戛然而止预算耗尽时触发最后一轮收尾总结进展、列出剩余工作、给出下一步且不许只因预算用完就客套地声明complete不设预算或-1则一直跑到complete/blocked由 100 轮硬上限兜底。正在运行的一轮总会跑完实际花费最多可能超出预算一轮用量外加收尾轮。停止目标与查看进度停止Web App 点停止按钮CLI 按 Ctrl-C。你的中断优先于钩子目标以aborted结束状态GET /api/sessions/:id/goal返回{ objective, status, budget, used, rounds }实时事件goal_started/goal_round/goal_finished经 SSE 推送Trace 页也能完整回看每一轮的 Token 消耗。实战案例让 Agent 自主做出一个完整小游戏假设你启动这样一个目标构建一个企鹅雪橇越野的小网页游戏包含计分、里程、连击倍率空格起跳纯前端实现。Agent 会在同一会话里自主完成写代码 → 运行检查 → 修 bug → 打磨细节直到它自证游戏可玩并声明complete。下面是这类目标跑出来的成品之一同样的思路也适用于更大的任务比如把整个文档库做成可检索问答应用Agent 会自主完成从语料采集到入口界面的一整套交付。常见问题 FAQQ为什么返回409 goal_plugin_not_installedAgent 没装goal插件或关闭了钩子。到插件库装上goal并确认启用钩子已打开。Q某轮失败/报错会直接杀掉目标吗不会轻易杀。瞬时障碍只会触发下一轮只有连续三轮同一阻塞、Task 中断失败、或 100 轮兜底目标才会以aborted/blocked结束。Q目标被打断后如何恢复目标文件始终保留模型最后一次写入的内容中断后磁盘上的目标保持active就是一个干净的恢复点。Q目标和普通消息 Skill 是什么关系输入框选中的 Skill 会以[use_skills]块加在第 1 轮消息开头与普通发送完全一致之后各轮只重新注入目标文字。小结PenguinHarness Goal Mode 用一份状态文件 两个钩子脚本把一句话消息升级成一个可循环推进、可设预算、可随时叫停、崩溃可恢复的自主工作闭环。核心要点一个目标一个会话每轮重新注入目标沉默不等于结束Token 预算兜底超限自动收尾不会无限烧钱️多重防失控100 轮硬上限 阻塞需连续三轮 文件损坏即停纯插件实现不侵入核心随时可装可卸更多细节API 字段、图片目标支持等可阅读目标模式官方文档功能引入记录见 Goal Mode 变更说明。【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考