资讯详情

资讯详情

最小 Agent Loop 拆解:从大模型底层到工程防护

一、先回到大模型的底层LLM 本身没有循环大模型的本质是自回归生成给定一段 token 序列预测下一个 token再把它拼回去继续预测直到遇到停止符。P(x₁, x₂, ..., xₙ) Π P(xᵢ | x₁, ..., xᵢ₋₁)这个机制决定了 LLM 的四个先天属性无记忆模型本身不记得任何对话你看到的记忆是运行时每次把历史重新拼进 prompt。无目标它不知道任务完成了没有只会接着上文自然地往下写。无外部世界训练完成后权重冻结不知道今天的股价、不知道你的文件系统里有什么。无循环能力模型输出一段文本就结束了它不会自己决定再跑一轮。所以Agent LLM 控制循环Loop 工具Tools 记忆Context。LLM 只是循环里的一个决策函数action f(context) // f 就是模型context 就是拼好的 prompt二、最小 Agent Loop 的环节最小的闭环只有四个环节外加一个终止条件┌──────────────────────────────────────┐ │ │ ▼ │ ① 感知 Observe ──► ② 思考 Decide ──► ③ 行动 Act ──► ④ 反馈 Observe 拼装上下文 模型推理 调用工具 结果写回上下文 (system历史 f(context) tool(args) tool_result 工具定义) → action → 回到① │ 是 final_answer? │ 是 ▼ ⑤ 终止 Stop逐环节拆解环节做什么大模型视角下的本质① 上下文构建把 system prompt、任务目标、历史对话、工具 schema、上一轮结果拼成一个 prompt上下文就是模型的全部世界漏拼什么它就不知道什么② 推理决策模型基于上下文输出要么是一段 final_answer结束要么是一个 tool_call继续本质是一次context → action的映射③ 行动执行运行时解析 tool_call真正去执行查库、调 API、跑代码并捕获输出和错误这是模型触碰现实的唯一通道错误也在这里进来④ 结果回写把执行结果以 tool_result 追加进上下文回到 ①记忆 往上下文里追加记录而不是模型真的记住了⑤ 终止判定模型声明完成或外部计数器触发硬停止没有这一环就只剩死循环最小实现其实就是十几行伪代码context build_prompt(goal, tools) for step in range(MAX_STEPS): # 硬终止条件 action llm(context) # ② 决策 if action.is_final_answer: return action.text # ⑤ 正常终止 result run_tool(action) # ③④ 行动回写 context.append(action, result) return 达到步数上限强制停止 # ⑤ 兜底终止三、死循环 / 跑偏怎么防核心洞察模型自己无法可靠地判断该不该停所有防护都必须由运行时Loop 外层兜底。防护分三层。第一层终止性Termination——防死循环硬预算max_steps、token 预算、时间预算任一超限强制退出。这是底线不依赖模型的任何自觉。重复检测对每一轮的 tool_call 做哈希/相似度比对。如果连续 N 轮调用同样的工具、同样的参数或模型输出与前几轮高度相似说明它在原地打转直接打断并总结现状。无进展检测对比上下文状态若连续 N 轮工具结果没有带来任何新信息结果相同、报错相同判定为停滞。结构化停止信号强制模型每轮输出必须符合 schema其中显式包含status: continue | done字段而不是靠自然语言里有没有说完了来判断。第二层安全性Safety——防跑偏目标锚定把原始任务目标原样固定在 system prompt 里且每轮都在上下文中可见——上下文越长模型越容易忘记初心目标必须持续在场。Plan-and-Execute先让模型产出显式计划plan之后每轮动作必须对照计划执行最后由计划核对器验收。把开放式生成收敛成按图施工跑偏率大幅下降。Schema 校验工具参数、中间结论都做结构化校验如 JSON Schema不合法就拒绝执行并带着错误信息重试而不是让错误结果污染上下文。权限护栏工具白名单、参数范围检查、危险操作删除、转账、发消息强制人机确认。模型可能输出任何 tool_call但运行时只放行合法的。上下文卫生超长上下文做摘要压缩、按相关性裁剪被污染的错误信息要标记或剔除——上下文质量直接决定决策质量garbage in, garbage out。第三层正确性Validity——防跑完了但答错了Verifier / Critic独立的验证步骤可以是规则、代码执行、或另一个模型对最终产出打分不达标则带着反馈回到 Loop 重试重试设上限。自我一致性关键决策让模型多次采样取多数低成本任务特别有效。执行即真理能用代码/工具验证的断言不要靠模型觉得让运行时去真跑一遍。四、一句话总结本质LLM 是一个无记忆、无目标、无判断终止能力的状态→动作函数Agent 的全部工程含量就是用预算、校验、护栏、验证四根柱子把这个函数包进一个可控的 while 循环里——让它能干活但永远关在笼子里干活。死循环和跑偏的根源都在模型一侧无法自证完成、注意力漂移所以所有防护都不应信任模型自己报告而要由外层运行时强制执行——这是 Agent 工程设计的总原则。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →