跳转到主要内容

目标管理

目标将 Myrm 从聊天助手变为自主工作者。定义目标、设约束,让 Agent 跨多轮独立工作。

创建目标

从 GUI

  1. 侧栏打开 Goal 面板
  2. New Goal
  3. 描述目标(如「将认证模块重构为 JWT」)
  4. 可选设置验收标准、约束、预算
  5. 提交 — Agent 开始规划执行

从对话

用自然语言描述复杂任务,Agent 识别需持续努力并提议创建目标。

目标生命周期

PENDING_APPROVAL → ACTIVE → PAUSED → COMPLETED / FAILED / CANCELLED

                           QUEUED
状态说明
PENDING_APPROVAL等待用户批准执行计划
ACTIVEAgent 积极向目标推进
PAUSED暂停(预算或用户)
QUEUED等待当前活跃目标结束
COMPLETED目标达成并验证
FAILED预算内无法完成
CANCELLED用户显式取消

预算控制

每个目标 4 维预算:
维度说明示例
max_tokens最大总 Token500,000
max_usd最大美元花费$5.00
max_time_seconds最大墙钟时间3600(1 小时)
max_turns最大 Agent 轮次30
预算耗尽时暂停并附结构化进度摘要。可随时恢复并追加预算。

验收标准

定义「完成」标准:
All tests pass, code coverage > 80%, no new linting errors
Agent 使用双引擎验证
  1. Shell 验证 — 运行测试命令(pytestnpm test)检查结果
  2. 语义验证 — LLM 对照验收标准评估
两引擎均通过才标为完成。

约束

Agent 必须遵守的硬规则:
Do not modify the database schema
Do not introduce new dependencies
Keep all changes backward compatible
每轮作为「CONSTRAINTS (MUST NOT VIOLATE)」块注入提示词,语义裁判在完成验证时评估合规。

7 步续行守卫

每轮末续行守卫链决定是否继续:
  1. 用户是否取消
  2. 预算(4 维)
  3. 工具是否报告完成
  4. 语义完成(LLM 裁判)
  5. 约束合规
  6. 是否停滞
  7. 动态子目标是否满足
防过早终止与失控执行。

优先级队列

多目标自动排队:
  • 首个立即运行
  • 后续进入 QUEUED
  • 活跃目标结束自动启动下一个
  • GUI 拖放重排
auto_approve: true 跳过审批,支持目标链完全无人值守。

自适应收敛与自动续跑

目标能自动检测 Agent 是否已完成工作,支持无人值守的持续执行。

收敛检测

当 Agent 连续 convergence_window 轮未调用任何工具时,系统判定目标已自然收敛(完成)。避免 Agent 空转浪费 Token。
参数说明默认
convergence_window无进展多少轮后自动收敛(未启用)

自动续跑(Loop-on-Pause)

启用后,因收敛暂停的目标会自动重启并获得全新上下文,最多重启可配置次数。适用于长期监控或迭代优化任务。
参数说明默认
loop_on_pause收敛暂停后自动重启false
max_loop_restarts最大自动重启次数0

恢复安全

手动恢复暂停目标时,收敛计数器(no_progress_streakloop_restarts)自动归零,确保 Agent 获得完整新机会,不会立即再次触发收敛。

前端状态

目标状态卡片差异化显示:
  • 已收敛 — 目标通过收敛检测完成
  • 重启中 (#N) — 目标正通过自动续跑重启(显示重启次数)

动态子目标

执行中可添加新目标而不中断:
  1. 打开活跃目标详情
  2. 添加子目标(如「为新模块补单元测试」)
  3. 以最高优先级注入上下文
子目标纳入语义裁判完成标准。

目标热编辑

执行中可改方向:
  1. 打开活跃目标详情
  2. 编辑目标文本
  3. 作为转向消息注入 — Agent 调整航向不丢进度

执行摘要

完成后每个目标产出 GoalExecutionSummary
  • 修改文件(含 diff 链接)
  • Token 用量分解
  • 按模型成本分解
  • 耗时
  • 轮次
  • 完成原因
GUI 与 API 均可查看。

示例工作流

用户:「将 API 从 Express 迁到 Fastify」

创建目标:
  目标:Express → Fastify 迁移
  标准:现有测试全过、API 契约不变
  约束:不改数据库层
  预算:max_turns=50, max_usd=$10

Agent:
  第 1-3 轮:规划迁移,识别 12 个受影响文件
  第 4-15 轮:重写路由
  第 16-20 轮:更新中间件
  第 21-25 轮:修失败测试
  第 26 轮:测试全过,语义裁判确认完成

目标 COMPLETED — 26 轮,花费 $3.47