step 是一次模型请求加上它的响应引发的工具执行。turn 是一次会话中对已准入输入的一轮排空,在模型和它的工具都停下后结束。round 是包含一个 turn 的外层策略迭代。harness 里其余概念——seam、scope、goal、Ralph——都是相对这套层级定义的。
harness 的文档在术语上罕见地精确,而这种精确是有承重作用的:好几个听起来可以互换的词,其实不能互换。 这一页收集那些真正会改变你使用方式的定义。
三层循环
三个嵌套单位,由小到大:
step——一次模型请求,加上它的响应所引发的工具执行。
turn——一次会话中对已准入输入的一轮排空,在模型和它的工具都停下之后结束。一个 turn 含一个或多个 step。
round——包含一个 turn 的外层策略迭代。
实际影响:看到任何上限或配额时,先确认它数的是哪个单位。「限 round」和「限 step」约束的东西差别很大—— 一个 turn 可以含很多 step,而一个 round 含一个 turn。
Capability seam
seam——一项可替换能力,由三个角色构成:服务定义(拥有 ctx.<key> 的抽象类或具体注册表)、
一个或多个服务提供者、以及注入该服务的消费者。
文档还补了一句关键的话:「seam 指的是这项完整能力,从来不是其中某一个角色。」
这就是「一切皆插件」不止是口号的架构理由。一项能力不是「一个你也许会换掉的实现」,而是定义、提供者、
消费者三者合起来看的整体。换掉网页搜索后端,等于替换 ctx.web 背后的一个提供者,而所有消费它的东西
都不需要知道。
Agent scope
scope——工具、提示词这类贡献的按-agent 注册单位,要么全局,要么属于某一个 agent。
scope key——scope 被索引所用的不透明身份,按对象同一性比较。一个活着的 agent 就是它自己的 scope key。
agent context(agent.ctx)——该 agent 的 scope 化上下文,其中的注册是 scope 可见、scope 生命期的。
scope carrier——被 scope 过滤的分发所携带的 thisArg,它准入未打标的监听器加上主体自己的。
scoped dispatch——关于某个 agent 活动的事件,会带着该 agent 的 carrier 分发。
shadowing——最具体者胜的名字解析。scope 内的同名项只在该 scope 内替换全局项。
restriction / scope-local 注册——一条 restriction 通过取交集,为某个 scope 过滤全局工具集。
setup window——创建者组装某个 agent 的 scope 化世界的那个创建槽位,发生在发布之前。
lineage——作为数据携带的父子关系事实。文档强调 lineage 「永远不影响可见性」——子级看得到某样东西, 不是因为它是子级,而是因为它的 scope 注册了它。
最后这点值得停一下。很多系统里的委派层级是会渗漏的:子级凭「是子级」就继承父级能力。而这里可见性只 来自 scope,lineage 只是被记录下来的事实。这正是「只读不写的 reviewer」能成为一条可靠限制、而不是一句 但愿被遵守的指令的原因。
Goal
goal——挂在某个已有会话上的一个持久完成目标,带阶段和轮次上限。
goal round——为当前 goal 准入的一次续跑循环。
goal activation——续跑消费者准入下一个 goal round 的进程内许可,状态为 armed 或 disarmed。
三个彼此独立的概念:你想达成什么、朝它推进的一次尝试、以及允许再来一次的那份许可。一个带轮次上限和 显式激活状态的 goal,就是一个有界的自主循环——「有界」是关键词。
Human command
human command——由面向人的适配器解释并执行的斜杠指令,不会变成模型消息。
command plane——发现、解析、分发、取消与结果渲染,由 UI 适配器拥有。
goal command——/goal 命令,用于观察或修改当前 goal。
设计要点在「不会变成模型消息」这句。human command 不是一段由模型解释的提示词,而是由适配器执行的东西。 这比多数 agent 界面干净——在那些界面里,斜杠命令不过是加了约定的提示词文本。
Ralph
Ralph loop——面向一个不可变目标的前台 fresh-agent workflow 运行。
Ralph round——该循环中的一个全新子会话,不带父会话的对话种子。
Ralph handoff——从上一个继续中的 round 传给下一个的、规范化的、有界的、结构化报告。
更详细的展开在子 agent 与 workflow,但这三条定义连起来已经把故事 讲完了:目标固定、不继承上下文、靠有界结构化的东西保持连续。
常见问题
turn、step、round 有什么区别?
step 是一次模型请求加上其响应引发的工具执行。turn 是一次会话中对已准入输入的排空,在模型和工具都停下后结束,所以一个 turn 含一个或多个 step。round 是包含一个 turn 的外层策略迭代。
capability seam 是什么?
一项可替换能力,由三个角色构成:拥有 ctx.<key> 的服务定义、一个或多个服务提供者、以及注入该服务的消费者。seam 指的是这项完整能力,从来不是其中某一个角色。
dsh 里的 shadowing 是什么意思?
最具体者胜的名字解析。scope 内的同名项只在该 scope 内替换全局项——这就是一个 agent 能拥有某个工具的不同版本而不影响其它 agent 的机制。