目标管理
目标将 Myrm 从聊天助手变为自主工作者。定义目标、设约束,让 Agent 跨多轮独立工作。创建目标
从 GUI
- 在消息输入区域切换 目标模式(右下方切换按钮)
- 配置面板展开,包含以下区域:
- 预算 — 设置
max_tokens、max_usd、max_time_seconds、max_turns的任意组合 - 验收标准 — 定义 Shell 命令和语义检查
- 约束 — Agent 执行期间必须遵守的规则
- 保护路径 — 禁止 Agent 修改的文件 glob 模式(如
*.env、migrations/**) - 高级 —
loop_on_pause自动重启、convergence_window收敛窗口、逐步暂停确认(Per-Todo Checkpoint)
- 预算 — 设置
- 在消息框输入目标后发送 — Agent 开始规划执行
从对话
用自然语言描述复杂任务,Agent 识别需持续努力并提议创建目标。目标生命周期
预算控制
每个目标 4 维预算:
预算耗尽时暂停并附结构化进度摘要。可随时恢复并追加预算。
验收标准
定义「完成」标准:- Shell 验证 — 运行测试命令(
pytest、npm test)检查结果 - 语义验证 — LLM 对照验收标准评估
高级用法:逻辑一致性验证
对于长文档生成任务,语义验证可确保全文逻辑一致、前后呼应:约束
Agent 必须遵守的硬规则:14 层防死循环盾
每轮末 14 层守卫链决定是否继续 — 杜绝失控执行、成本超支、Token 浪费、轨迹偏离和沙箱越权:
此外,渐进预算降级(WARNING → FINALIZATION,含动态剩余 USD 注入)和4 层上下文窗口溢出保护在中间件层运作,在守卫链之前捕获边缘情况。
裁判反馈闭环
当语义裁判判定目标尚未完成时,会给出具体原因(如”5 张图表只完成了 3 张”)。该原因自动注入下一轮提示词,让 Agent 精确知道差距所在——消除冗余重分析,减少不必要的轮次。逐步人工确认(Per-Todo Checkpoint)
在高级设置中开启**“逐步暂停确认”**即可激活该模式。开启后,Agent 每完成一个 todo 项会自动暂停,等待你确认后再继续。 工作流程:- Agent 通过
todo_write报告某 todo 已完成 - 守卫链检测到新完成项,自动暂停目标
- GoalStatusCard 展示刚完成的步骤和继续按钮
- 你审查结果,点击继续推进到下一步
- 生产部署 — 每步迁移确认后再继续
- 数据管道 — 每阶段验证数据完整性
- 复杂重构 — 逐步审查代码变更
- 学习模式 — 了解 Agent 每步的执行逻辑
优先级队列
多目标自动排队:- 首个立即运行
- 后续进入
QUEUED - 活跃目标结束自动启动下一个
- GUI 拖放重排
auto_approve: true 跳过审批,支持目标链完全无人值守。
续跑时保留 Saved Agent 配置
目标自动续跑(队列 dequeue、后台 WAIT 恢复、loop restart)时,Myrm 不会退化为通用 headless Agent,而是从 chat 绑定的 Saved Agent profile 注入与首轮一致的运行时上下文:
长 Goal 的每一轮无人值守续跑都会保持正式语体(如
builtin-ko-office 的韩国 합니다体)、Team 名册与工具范围。入口:goal_stream_trigger.py。
已验证(2026-08): Goal Chrome E2E 连续 2/2 通过(真实 WebUI + MCP + 在线 LLM,单次 pytest ~3 分钟)。
自适应收敛与自动续跑
目标能自动检测 Agent 是否已完成工作,支持无人值守的持续执行。收敛检测
当 Agent 连续convergence_window 轮未调用任何工具时,系统判定目标已自然收敛(完成)。避免 Agent 空转浪费 Token。
自动续跑(Loop-on-Pause)
启用后,因收敛暂停的目标会自动重启并获得全新上下文,最多重启可配置次数。适用于长期监控或迭代优化任务。恢复安全
手动恢复暂停目标时,所有运行时计数器(no_progress_streak、loop_restarts、consecutive_judge_parse_failures)自动归零,确保 Agent 获得完整新机会,不会立即再次触发收敛或误暂停。
Judge 失败熔断
如果语义 Judge 模型连续 3 次返回无法解析的输出(非有效 JSON),目标自动暂停以防止 token 浪费。此机制保护以下场景:- 使用了不支持 JSON 格式回复的弱模型
- 模型暂时降级产生无效输出
- 避免无限重试循环浪费预算
服务重启恢复
如果服务重启(升级、崩溃或容器重调度)时目标正在执行,孤儿目标会被自动检测并暂停:- 启动时扫描所有仍标记为 ACTIVE 但无执行引擎驱动的目标
- 每个孤儿目标转为 PAUSED,reason 显示”Server restarted — resume when ready”
- 系统通知提醒您有目标被暂停
- 打开对应会话即可看到暂停状态并一键恢复
前端状态
目标状态卡片差异化显示:- 已收敛 — 目标通过收敛检测完成
- 重启中 (#N) — 目标正通过自动续跑重启(显示重启次数)
全局 Goal 追踪
无需切换页面,在任何位置实时监控所有活跃目标:- 导航栏 Badge — 实时显示活跃目标数量,通过 SSE 推送即时更新。
- 后台任务面板 — 点击 badge 展开 Popover,查看所有会话的活跃目标:目标、状态、token 消耗、运行时间。
- 快捷操作 — 直接在面板中暂停、恢复或取消任意目标。操作完成后 toast 确认。
- 会话导航 — 「跳转到会话」按钮直达目标所在的聊天上下文。
- 系统通知 — 目标完成/失败/暂停时推送 OS 通知,即使浏览器在后台也不会错过。
动态子目标
执行中可添加新目标而不中断:- 打开活跃目标详情
- 添加子目标(如「为新模块补单元测试」)
- 以最高优先级注入上下文
IM 斜杠命令
在任意 IM 渠道(Slack、飞书、Telegram、WhatsApp 等)中完整管理目标:
通过 IM 添加的约束以”CONSTRAINTS (MUST NOT VIOLATE)“注入 Agent 提示词,语义裁判在完成验证时强制执行,与 GUI 设置的约束行为完全一致。
目标热编辑
执行中可改方向:- 打开活跃目标详情
- 编辑目标文本
- 作为转向消息注入 — Agent 调整航向不丢进度
执行摘要
完成后每个目标产出GoalExecutionSummary:
- 修改文件(含 diff 链接)
- Token 用量分解
- 按模型成本分解
- 耗时
- 轮次
- 完成原因
IM 完成通知
当目标通过 IM 渠道发起(/goal set)时,完成结果自动推送回原始会话线程 —— 无需轮询。
示例
在飞书中发起目标:交付物 Bundle
当目标完成且产出 2 个或以上的交付物(文档、电子表格、演示文稿等)时,Myrm 会自动将它们聚合为 交付物 Bundle 卡片:- 自动收集 — 目标 session 期间产出的所有 artifacts 自动收集,无需手动操作
- 一键 ZIP 下载 — 将整个 bundle 打包为 ZIP 一键下载
- 逐个预览 — 点击任意交付物在 Artifact Portal 中格式感知渲染
- 文件名去重 — 同名文件自动追加唯一标识
聊天内可点交付路径
除 Bundle 卡片外,Agent 在回复里用 inline code 引用交付物时,WebUI 会自动渲染为可点击链接:`workspace/reports/brief.md`— 工作区相对路径,一点在 Artifact Portal 预览`@file_001`— Harness 大文件短 ID(与 Agent 内部 token 别名一致),artifact 同步后即可点击
[标题](artifact:path) markdown 格式 + 独立 Right Rail,Myrm 用已有 Portal,聊天里直接点路径即可。
技术说明:deliverable_discipline提示词块教 Agent 写文件并在聊天 cite 路径;文件创建时自动注册 artifact 并通过 SSE 推送short_file_id。
使用场景:办公全链路交付
使用预置的 「办公全链路交付」 智能体模板,一次对话生成完整文档套件:- 在智能体选择器中选择「办公全链路交付」
- 描述交付需求(例如:“帮我准备季度汇报全套材料:Excel 数据表 + PPT 演示 + Word 总结报告”)
- 智能体以 Goal 模式执行,确保所有文档间数据一致
- 完成后交付物 Bundle 卡片自动出现,全部文件一键下载
API 访问
交付物也可通过 REST API 获取:GET /api/goals/{goal_id}/status— 返回deliverables数组(含 artifact ID 和文件名)POST /api/files/download-bundle— 将多个 artifacts 打包为 ZIP 下载
示例工作流
项目里程碑(跨会话目标)
Goal 在单次会话内运作,而项目里程碑跨越多个会话。你可以为整个项目定义战略目标,Agent 在每次对话中自动感知它们。工作原理
- 创建里程碑 — 在侧边栏项目面板中添加
- 自动上下文注入 —
ProjectRoadmapMiddleware将紧凑的路线图上下文(~100 token)注入该项目的每次对话 - 追踪进度 — 里程碑关联看板任务,自动计算完成率
创建里程碑
在侧边栏导航到你的项目,找到里程碑区域:- 点击
+按钮添加新里程碑 - 每个里程碑有标题、可选的描述和验收标准
- 双击里程碑标题可直接内联重命名
- 目标达成后标记为已完成
实时进度可视化
每个里程碑显示紧凑的进度条,展示关联看板任务的完成率:- 当里程碑有关联任务时,标题下方显示 3px 进度条
- 任务计数直接展示(如 “6/8”)— 无需手动计算
- 任务完成时进度自动更新
batch-progressAPI 一次请求获取所有活跃里程碑完成率(无 N+1 查询)
自动上下文注入
当你在有里程碑的项目中对话时,Agent 会收到类似这样的上下文:评估导入(一键报告转任务)
当你的 Agent 产出评估报告或复盘文档(作为工件)时,可以一键将其转换为里程碑和任务:- 展开侧边栏里程碑面板
- 最近候选自动出现 — 系统对每个工件进行语义探测,验证是否包含可导入任务(使用与导入引擎相同的解析器)。已导入的工件通过台账自动识别并显示为禁用状态。
- 点击候选 即可导入,也可手动输入任意工件 ID
- 即时反馈 — 成功时显示回执(已创建里程碑 + 任务数);失败时显示清晰原因(如”已导入”、“无可执行任务”)
- 幂等 — 同一工件版本不会重复导入同一项目(不可变台账)
- 原子 — 导入中途失败时,已创建的里程碑/任务自动清理,不留脏数据
- 可观测 — 导入漏斗指标(尝试次数、成功数、按原因和触发方式分类的失败数)用于产品分析
- 价值闭环 — 面板展示导入后任务完成率,让你看到导入工作的真实影响