aude-team(7)
NAME
aude-team —
由 aude
会话组成的团队
DESCRIPTION
本手册页写给把工作委派给 aude(1) 子智能体的模型。它假定有一个工具在新的 shell 中运行每条命令,并且不提供标准输入。该工具会在一段时间后停止每条命令。
- 子智能体有一个名称、一份记录和一份实录。因为它们在其宿主退出后仍然保留,所以该名称在
remove之前一直有效。 - 列表行显示工作的状态:waiting、working、done 或 failed。
- 只有
wait会阻塞,最长为--limit。start和send在宿主收到该轮次时返回。interrupt在轮次结束时返回。其他命令立即返回。 - 轮次的预算和等待的时限是不同的时间。用
start或send给每个轮次设置较长的预算。给每个wait设置一个时限,它要短于你的工具允许一条命令运行的时间。
SUBAGENTS
start name
在仓库中创建 git
工作树
.aude/worktrees/<name>,其分支为
name。 git 会忽略
.aude。 remove
会移除该工作树和该分支。由人启动的会话不是子智能体。不带目标的
wait
不会等待这种会话。
当子智能体有轮次时,它的宿主保持运行。宿主在最后一个轮次之后退出。下一次
send
会启动一个继续该对话的新宿主。
在某个轮次运行期间你发送的文本会加入该轮次。其他轮次在队列中等待,并且不消耗它们的预算。预算用完时,宿主会像
interrupt
一样中断该轮次。
只有当任务要求模型提交时,模型才会提交。 git-merge(1) 只接受提交。告诉每个子智能体提交它的工作。
attach
会打印最后一个轮次的全部内容。若要得到简短的回答,就给每个子智能体一个报告文件的绝对路径,该文件位于仓库中的
.aude
之下。然后读取该文件。
WHAT TO RUN
| 目的 | 运行 |
| 了解它是否已完成 | wait,并使用较短的时限。
退出码 9
表示它尚未完成。退出码
1 表示它已失败。 |
| 了解它是否卡住 | sessions。
如果 working 列表行上的 quiet=
在两次等待中一直增大,它就卡住了。 |
| 查看它做了什么 | attach。
阅读列表行上的 commits= 和
dirty=。 |
| 中断轮次 | interrupt |
| 改变方向 | interrupt,然后
send |
| 布置更多工作 | send。
新的轮次在当前轮次之后运行。 |
| 继续一个已完成的子智能体 | send |
| 在其他子智能体的基础上构建 | start
--on |
| 查看团队 | sessions |
| 清理 | remove |
EXAMPLES
有三个模块是桩代码。测试已经存在。每个任务文件都告诉子智能体要提交。
aude start tokenize --harness claude --budget 15m </path/to/tasks/tokenize.md aude start count --harness claude --budget 15m </path/to/tasks/count.md aude start report --harness claude --budget 15m </path/to/tasks/report.md aude wait --limit 90s # exit 9: not yet, so run it again echo 'Also add a module docstring, and commit.' | aude send tokenize --budget 5m aude wait tokenize --limit 90s aude attach count # the last turn of count git merge tokenize count report python3 -m unittest discover -s tests aude remove tokenize count report
remove
之后,下一次运行可以使用相同的名称。
下面的命令让
‘report’ 在
‘tokenize’ 和
‘count’
的基础上构建:
aude start report --harness claude --budget 15m --on tokenize count \ </path/to/tasks/report.md
‘report’
会等待。当
‘tokenize’ 和
‘count’
完成后,它的宿主先合并它们,然后运行任务。
退出码 0
表示轮次没有出错。它并不表示任务是正确的。阅读
‘commits=’ 和
‘dirty=’
以及最后的回答。然后运行测试。
FAILURE
- 出错的轮次以
‘
exit=1’ 失败。sessions--json会显示该错误。 - 当预算或
interrupt结束一个轮次时,该轮次以 ‘exit=9’ 失败。它所做的修改保留在工作树中。 - 如果宿主停止,列表行显示
‘
exit=5’ 和 failed。send会启动一个新的宿主。 - 如果宿主无法启动,则
start或send以宿主的退出码退出。它会打印一行。退出码 3、4 或 5 来自框架,64 表示未知的--agent。 - 所指定的子智能体失败时,带
--on的子智能体以 ‘exit=1’ 失败,所指定的子智能体被移除时以 8 失败,出现合并冲突时以 64 失败。此时不会运行任何轮次。对所指定的子智能体执行interrupt,结果相同。 修复所指定的子智能体。然后用send再次发送该任务。宿主会先进行合并。 remove在以下情况以 64 退出:子智能体处于 waiting 或 working 状态,工作树中有未提交或未跟踪的文件,或分支尚未合并。该子智能体和排在它之后的目标都会保留。把构建输出加入 .gitignore。
轮次失败之后,队列中的下一个轮次会运行。
send
也可以发送新的轮次。
SEE ALSO
CAVEATS
子智能体名称最多
32 个字符:ASCII
小写字母、数字,以及它们之间的单个连字符。因为分支使用相同的名称,所以分支名不能采用
‘feat/<name>’
的形式。
要放弃一个失败的子智能体,先把它的分支移到你的 HEAD。然后清理它的工作树:
git -C .aude/worktrees/<name> reset --hard "$(git rev-parse HEAD)" git -C .aude/worktrees/<name> clean -fd aude remove <name>
对处于 waiting
状态的子智能体,在它的
--on
子智能体完成、失败或被移除之前,你不能中断或移除它。
在 git 仓库中运行
start。
因为子智能体在它的工作树的顶层运行,所以
start 的 --agent
指定的是那里已提交的智能体文件。