人工智能进阶文档深度页
Agent 工作循环
用“理解—计划—行动—观察—判断”循环推进任务,并受停止条件约束。
学习目标
- 能说明Agent 工作循环解决什么问题,以及何时适用。
- 能解释为什么“没有最大步数”是误区。
学习前需要掌握
背景与问题
一次模型调用无法处理依赖外部结果的多步任务;循环把每个新结果变成下一步决策的证据。
概念定义
Agent loop 是运行器重复执行模型决策、工具调用与结果反馈,直到产生最终输出、错误、审批中断或达到限制。
直观理解
像做实验:提出下一步、动手、观察、判断,再决定继续还是结束。
核心原理
每轮必须消费新信息或缩小未完成范围,否则可能空转。
终止条件至少包括任务完成、最大步数、超时、不可恢复错误和权限拒绝。
工具结果需要验证后才能更新完成状态。
理解与实践步骤
- 1
接收任务
- 2
分析任务
- 3
制定计划
- 4
选择工具
- 5
调用工具
- 6
接收工具结果
- 7
判断是否完成
- 8
输出结果或继续
代码实现
示例 1
有停止条件的本地工作循环
有停止条件的本地工作循环
Python
example_01.py用途:观察任务状态、工具返回和最大步数如何共同决定循环何时结束。
from dataclasses import dataclass
@dataclass
class StepResult:
observation: str
done: bool
def search_notes(topic: str) -> StepResult:
notes = {"Agent": "Agent 组织模型、状态与工具来完成目标。"}
text = notes.get(topic, "本地资料中没有结果")
return StepResult(text, topic in notes)
def run_agent(task: str, max_steps: int = 4) -> str:
state = {"task": task, "step": 0, "observations": []}
while state["step"] < max_steps:
state["step"] += 1
result = search_notes("Agent")
state["observations"].append(result.observation)
if result.done:
return f"第 {state['step']} 步完成:{result.observation}"
return "达到步数上限,安全停止"
print(run_agent("解释 Agent"))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
观察任务状态、工具返回和最大步数如何共同决定循环何时结束。
Step 1 · 1–1 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from dataclasses import dataclassStep 2 · 3–6 行
循环保留历史观察,完成后立即返回;未完成时受最大步数限制。
@dataclass
class StepResult:
observation: str
done: boolStep 3 · 8–11 行
这是确定性的循环骨架,不包含模型推理或自主规划。
def search_notes(topic: str) -> StepResult:
notes = {"Agent": "Agent 组织模型、状态与工具来完成目标。"}
text = notes.get(topic, "本地资料中没有结果")
return StepResult(text, topic in notes)Step 4 · 13–21 行
按学习率和梯度更新参数。步长过小会缓慢,过大会越过最低点并震荡或发散。
def run_agent(task: str, max_steps: int = 4) -> str:
state = {"task": task, "step": 0, "observations": []}
while state["step"] < max_steps:
state["step"] += 1
result = search_notes("Agent")
state["observations"].append(result.observation)
if result.done:
return f"第 {state['step']} 步完成:{result.observation}"
return "达到步数上限,安全停止"Step 5 · 23–23 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
print(run_agent("解释 Agent"))预期输出或运行结果
第 1 步完成:Agent 组织模型、状态与工具来完成目标。
常见错误 · 3 条
- 没有最大步数
- 重复调用同一工具
- 把“看起来完成”当作验收
实际应用
- 多步研究
- 本地自动化
常见错误
没有最大步数
重复调用同一工具
把“看起来完成”当作验收
本地交互演示
Agent 工作循环 · 本地确定性演示
每次点击推进一个真实状态;没有网络请求,也不会执行外部工具。
等待开始
任务:读取本地 PDF 学习资料并生成带来源总结。
输入、输出与执行边界
输入
- 当前状态
- 工具列表
- 上一步观察
输出
- 工具调用、状态更新或最终输出
能力
- 多步研究
- 本地自动化
只读优先默认不要求审批
推荐学习资料
官方文档A 级
OpenAI Agents SDK 文档
系统介绍 Agent、工具、Handoff、Guardrail、Session 与追踪等核心组件。
OpenAI · OpenAI