跳转至

Solo Harness:把任务丢给 Agent,去睡觉,早上查结果

Coding agent 处理短任务很在行。"修这个 bug"、"写这个函数"、"重构这个文件"——几分钟搞定。

但更大的目标呢?"重构整个 auth 模块并写测试。"这是几小时的活。你不可能一直盯着。

Solo Harness 让你把大任务交接出去,做完再回来看。

旧方式 vs 新方式

以前: 你启动一个长任务,去睡觉,第二天醒来面对……一团未知。也许跑完了,也许卡住了,也许把你的 git 历史搞得一团糟。你完全不知道发生了什么。

现在: 你用 --worktree 启动一次 harness 运行,去睡觉,第二天早上:

  • 查看运行日志,了解具体发生了什么
  • 查看结构化状态,确认是否完成
  • 如果卡住了——从断点恢复
  • 如果跑偏了——删除 worktree,你的主分支毫发无伤

工作方式

# 晚上:启动运行
aios harness run \
  --objective "重构 auth 模块并编写集成测试" \
  --session nightly-auth \
  --worktree

# 早上:查看运行情况
aios harness status --session nightly-auth --json

# 如果完成了:查看变更
aios hud --session nightly-auth

# 如果卡住了:修复问题后恢复
aios harness resume --session nightly-auth --max-iterations 10

为什么 --worktree 很重要

--worktree 这个标志很关键。它会在一个独立副本里创建你的仓库,agent 可以自由修改。

  • 结果好? 把 worktree 合并到主分支
  • 结果差? 直接删除 worktree——对代码零影响

不需要 git reset --hard。不需要冒险清理。就是安全的隔离。

会记录什么

每次 harness 运行都会写日志:

memory/context-db/sessions/<session-id>/artifacts/solo-harness/
  ├── objective.md           # 你让它做什么
  ├── run-summary.json       # 当前状态和进度
  ├── control.json           # 停止请求和备注
  ├── iteration-0001.json    # 每轮迭代发生了什么
  └── iteration-0001.log     # 详细日志

这给了你一条可读的交接记录——不是"agent 跑了一会儿",而是它做了什么、什么有效、什么没用。

什么时候用 Solo Harness

适合用: - 你有一个明确的大目标需要很长时间 - 任务不需要拆分给多个 agent - 你想一觉醒来拿到结果,而不是全程盯着

不适合用: - 任务能拆成独立的部分(用 Agent Team) - 你还在理需求(先用普通会话) - 你需要带质量关卡的阶段性执行(用 orchestrate)

试试看

# 先用 dry-run 确认一切就绪
aios harness run \
  --objective "为支付模块编写集成测试" \
  --session test-dry \
  --worktree \
  --dry-run --json

# 准备好了,正式开始
aios harness run \
  --objective "为支付模块编写集成测试" \
  --session payment-tests \
  --worktree \
  --max-iterations 20

Solo Harness 在 AIOS 1.7 中发布。阅读完整文档或今晚就试试。