Glossary
68 terms from "Agent Harness 基础:循环与控制." Look them up when you get stuck; the first mention in the text carries a hover definition.
| Term | Definition | Source |
|---|---|---|
| harness | 套在模型外面那层控制代码的总称,负责执行工具、驱动循环、决定何时停何时等人;模型只提议下一个动作,harness 才裁决动作是否执行、循环是否继续。 | How tool use works — Claude API |
| Agent | 在循环里、根据环境反馈使用工具的 LLM;由模型动态主导流程、自己决定用什么工具。 | Building Effective AI Agents — Anthropic Engineering |
| 工作流(workflow) | LLM 与工具沿预先写死的代码路径被编排的系统,先做什么、遇到分支往哪走都由人提前定好。 | Building Effective AI Agents — Anthropic Engineering |
| 循环(loop) | Agent 反复「模型提议→执行工具→把结果喂回模型」的往复过程;一次工具调用往返只是它恰好只转一圈的特例。 | Building Effective AI Agents — Anthropic Engineering |
| 控制流决策 | 决定「下一步走哪条路」的判断;工作流里由代码写死,Agent 里由模型在循环中当场做——这正是一个系统算不算 Agent 的分界。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 循环控制 | 驱动「模型→执行工具→把结果喂回模型」这个 while 循环运转的那段代码,读 stop_reason 判断这一圈之后接着转还是停,是 harness 的心脏。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 工具分发 | 模型提议「调用某工具、参数是这些」之后,把请求路由到对应实际函数、执行、再把输出包成 tool_result 的那段代码。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 上下文管理 | harness 中负责管理循环产出历史的组件——决定历史往哪放、留多少、怎么压缩摘要,避免对话无限膨胀、耗尽注意力预算。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 提议动作 | 模型在每一轮里的唯一职责——看着当前对话,提出「下一步想做什么动作」的结构化请求,但从不亲自执行。 | How tool use works — Claude API |
| 审批阀 | 在执行某个被标为高影响的工具之前插入的一道停顿代码,把「打算做什么」摊给人看,人点头才执行、摇头就跳过并回一个 is_error 结果。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 往返 | 一次完整的工具调用来回:模型返回 tool_use、宿主执行工具、把 tool_result 拼回对话再发一次请求;循环就是把它重复做。 | How tool use works — Claude API |
| 环境反馈 | 宿主执行工具后把结果喂回给模型的那份输入;模型据此决定下一步——它是驱动循环往前转的燃料。 | Building Effective AI Agents — Anthropic Engineering |
| 自主性 | Agent 自己动态决定下一步做什么、用什么工具的性质;它是 Agent 有用的原因,也意味着更高的成本与误差沿循环累积放大的可能。 | Building Effective AI Agents — Anthropic Engineering |
| while 循环 | 用 stop_reason 作判断条件、把单次往返落成代码的 while 结构:只要 stop_reason 还是 tool_use 就再转一圈。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 循环的四步 | 把往返接成循环的固定四步:发请求→读 stop_reason 与 tool_use 块→执行工具并打包 tool_result→追加历史后再发一次。 | How tool use works — Claude API |
| stop_reason | 模型响应里指示「为什么停下」的字段,是循环的 while 条件:取值 tool_use 表示还要用工具、循环继续,取值 end_turn 表示收尾、循环结束。 | How tool use works — Claude API |
| tool_use | 模型请求调用工具的内容块,带 id / name / input;它表示模型「想用工具」,而不是工具已被执行。 | How tool use works — Claude API |
| tool_result | 把工具执行输出打包回传给模型的内容块,带 tool_use_id 认领是哪次调用、content 放输出,失败时加 is_error。 | Handle tool calls — Claude API |
| end_turn | stop_reason 的一个取值,表示模型不再要工具、认为话说完了,循环自然结束、把最终文字交给用户。 | How tool use works — Claude API |
| tool_use_id | tool_result 里用来认领「这是对哪一次 tool_use 调用的回应」的字段;一轮里多个工具靠它一一对应。 | Handle tool calls — Claude API |
| is_error | tool_result 上的可选字段,工具执行失败时置为真,让模型知道这次调用没成、好换参数重试或改走别的路。 | Handle tool calls — Claude API |
| callModel | 骨架循环里代表「向模型发一次请求」的伪代码调用;真实实现里换成 SDK 的 client.messages.create。 | How tool use works — Claude API |
| executeTool | 骨架循环里代表「宿主真正去执行模型点名的工具」的调用;动作是在这一步发生的,不是在收到 tool_use 时。 | How tool use works — Claude API |
| 注意力预算(attention budget) | 模型解析上下文时动用的有限资源,每引入一个新 token 都会消耗一点;上下文越长,准确召回其中某条信息的能力越差。 | Effective context engineering for AI agents — Anthropic Engineering |
| 停止条件(stop condition) | 由宿主说了算、不看模型脸色的显式收手规则(如最大迭代次数),用来在模型自己的 end_turn 之外把控制权攥回自己手里。 | Building Effective AI Agents — Anthropic Engineering |
| 最大轮次(max turns) | 最基本的硬停条件,给循环设一个绝对圈数上限;不管模型为什么还在要工具,撞到上限就停手、不再发请求。 | Building Effective AI Agents — Anthropic Engineering |
| 硬停 | 到边界就无条件停止、循环彻底结束、不再自动往下走的一类停止,如最大轮次、预算耗尽;它是终态。 | Building Effective AI Agents — Anthropic Engineering |
| 软停(挂起) | 循环主动停在某个检查点、把控制权交给人、等人回话后能从现场快照接着跑的可恢复暂停;它不是结束。 | Building Effective AI Agents — Anthropic Engineering |
| 计数器(turns) | 循环外维护、跨圈累加的变量,记录循环已经转了几圈,是最大轮次这道闸能判断的依据。 | Building Effective AI Agents — Anthropic Engineering |
| 检查点(checkpoint) | 在链条里「一旦错了后面全白做」的节点上设的停顿点,让循环把中间状态暴露出来接受核验、或等人反馈。 | Building Effective AI Agents — Anthropic Engineering |
| needsHumanApproval | 软停示例里用来判断「下一步动作是否需要人先拍板」的谓词;命中时循环挂起、把现场交出去等人回话。 | Building Effective AI Agents — Anthropic Engineering |
| 任务达成 | 四类必须停的条件里最软的一类——模型判断做完了、回 end_turn;决定权在模型,但你仍要确认它是真做完而非中途放弃。 | Building Effective AI Agents — Anthropic Engineering |
| 现场快照 | 软停挂起时交出去的可续跑状态——当前的 messages、卡住的那个待执行动作一起打包,人处理完拿着它就能从原地继续。 | Building Effective AI Agents — Anthropic Engineering |
| 过度设计 | 在复杂度并不能明确改善结果时仍堆砌的机制;应当只在复杂度确实改善结果时才增加——但停止条件这类低成本高回报的控制不属于此。 | Building Effective AI Agents — Anthropic Engineering |
| 误差累积(compounding errors) | 一步错、后续每轮继续沿用放大的决策偏差;全程不报错,每步单看都合理,错误却在链条里复利式滚大。 | Building Effective AI Agents — Anthropic Engineering |
| 上下文膨胀 | 循环每转一圈都往历史里塞两条消息、只增不减,导致每一轮请求携带的上下文越来越长,请求越来越慢越来越贵。 | Effective context engineering for AI agents — Anthropic Engineering |
| 上下文腐化(context rot) | 随上下文变长、关键信息被淹没在噪声里,模型「看得到但抓不准」,召回能力随长度平缓下滑,是渐变曲线而非断崖。 | Effective context engineering for AI agents — Anthropic Engineering |
| 死循环 | 宿主代码写错(如循环体末尾漏了给 response 重新赋值)导致 stop_reason 永远停在老值、while 恒真、进程卡死的机制故障。 | How tool use works — Claude API |
| 空转(活锁) | 代码完全正确、循环每圈都在合法地发请求执行工具,却不产生任何新进展,如反复调同一工具拿回几乎一样的空结果。 | Building Effective AI Agents — Anthropic Engineering |
| 无进展检测 | 专门对付空转的硬闸:宿主盯住「有没有新东西发生」,连续 N 轮同一工具、拿回几乎相同输出就判定没进展、主动跳出。 | Building Effective AI Agents — Anthropic Engineering |
| 预算上限 | 给循环设的显式成本天花板,可按轮次或按 token(钱)记,触顶即停;轮次少但每轮上下文巨大时,光靠轮数拦不住烧钱。 | Building Effective AI Agents — Anthropic Engineering |
| 预算耗尽 | 轮数乘每轮上下文相乘推高成本导致的失控;一个卡在空转里的 Agent 可能一夜烧掉大笔 API 费却什么都没做成。 | Building Effective AI Agents — Anthropic Engineering |
| 上下文治理 | 主动管理循环产出历史的兜底手段——压缩旧轮次、摘要化早期结果、丢弃不再相关的中间产物,给循环的单圈开销踩刹车。 | Effective context engineering for AI agents — Anthropic Engineering |
| 早停 | 在检测到异常时就让已经跑偏的循环停下,而不是等它把预算耗光;与检查点配合,把误差斩断在还小的时候。 | Building Effective AI Agents — Anthropic Engineering |
| 边际收益递减 | 上下文作为有限资源的性质——往里塞的每一段历史带来的价值越来越低,因此每段历史都要问一句「这还值不值」。 | Effective context engineering for AI agents — Anthropic Engineering |
| 过度授权(excessive agency) | 当 LLM 输出异常、有歧义或被操纵时,若它背后连着能真正动手的权限,这些不对劲的输出就足以触发破坏性动作,无论模型因何出岔子。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 打断(interrupt) | 三种人为介入里最干脆的一种——不管模型这一轮想干什么,直接让循环终止、不再发下一次请求;打断之后没有「然后呢」。 | Building Effective AI Agents — Anthropic Engineering |
| 转向(steer) | 不终止循环,往对话里塞一条新的人类消息、改变模型接下来朝哪使劲,循环带着新指令继续转;动的是方向不是生死。 | Building Effective AI Agents — Anthropic Engineering |
| 审批(approve) | 针对某一个具体高影响动作的介入——循环转到它跟前先停下、把打算做什么摊给人看,人点头才执行、摇头就跳过;放行后循环继续。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 人在环 | human-in-the-loop 控制——在少数一旦走错就无法挽回的关键点上,让一个人在动作真正落地之前有机会说「等一下」。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 人工闸 | 在 harness 自己那套自动闸之外,专门守住少数「一旦做错就收不回」关键点的人为关卡,在自动化信任之外补一道人的裁决。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 不可逆动作 | 执行错了无法一步撤销、或撤销代价极高的动作(删库、转账、对外发布、改线上配置);审批闸必须靠前、且必须先批准才做。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 爆炸半径 | 一个操作出错时波及范围与不可逆程度的度量;爆炸半径越大、越收不回,确认点就该越靠前。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 先批准、后执行 | 人在环审批的铁律——对高影响操作必须要求一个人先批准、动作才能执行,而不是先执行再找人补个签。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 反事实测试 | 判断一个动作是否不可逆的自问法——假设这个动作执行错了,我还能不能一步低成本撤销回来?不能的就必须把闸门靠前。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| askHuman | 审批阀里向人索取放行决定的调用,在终端里就是「打印将要执行的动作、读一行输入」;它必须在 executeTool 之前完成。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| @anthropic-ai/sdk | 官方 Node SDK,用它把骨架里的伪代码 callModel 换成真实的 client.messages.create 来驱动同一个 stop_reason 循环。 | How tool use works — Claude API |
| client.messages.create | SDK 里发起一次模型请求的方法,带 model / max_tokens / tools / messages;它就是循环里 callModel 的真身。 | How tool use works — Claude API |
| runToolUses | 把模型这一轮点名的所有 tool_use 块真正跑起来、各自打包成 tool_result 的函数;审批阀与 try/catch 都写在它里面。 | Handle tool calls — Claude API |
| runAgent | 承载整个 harness 循环的入口函数,把 messages、四道控制阀、发请求与工具执行串起来,直到 stop_reason 不再是 tool_use。 | How tool use works — Claude API |
| signatureOf | 无进展检测用的签名函数——把这一轮所有 tool_use 块的名字和参数拼成一个字符串,用来和上一轮比对是否原地打转。 | Building Effective AI Agents — Anthropic Engineering |
| response.usage | 模型响应里报告本次消耗 token 的字段,累加 input_tokens 与 output_tokens,是预算上限按 token 计时的依据。 | Building Effective AI Agents — Anthropic Engineering |
| input_schema | 工具定义里描述其输入结构的 JSON schema,模型据此构造 tool_use 块的 input,使参数符合工具要求。 | Handle tool calls — Claude API |
| 越界防线 | read_file 之类工具里的安全校验——用 path.resolve 把访问死死限制在项目目录内,防止模型或被带偏的输出去读越界路径。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| try/catch | 工具执行的容错包裹——跑挂时不让整个 harness 崩,而是把错误包成 is_error 的 tool_result 传回,让模型有机会换参数或改路。 | Handle tool calls — Claude API |
| 控制阀 | 焊进循环、各守一处的控制机制统称——最大轮次、预算上限、无进展检测、高影响操作审批四道阀,位置都不能乱放。 | The 2026 Agent Engineering Roadmap — GitHub (codejunkie99/agent-roadmap-2026) |
| 策略阀 | 审批阀的推广——按工具名分 allow(直接放行)、ask(执行前确认)、deny(一律拒绝)三档管控,在 executeTool 之前判定。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |
| 高影响操作 | 会造成对外可见或不可逆后果的动作(如 write_file、http_post、delete_file);只对它们卡审批,读文件查日志这类无害动作照常放行。 | LLM06:2025 Excessive Agency — OWASP Gen AI Security Project |