AI Agent 实战教程 02:核心架构与运行循环

AI Agent 实战教程 02:核心架构与运行循环

乐闻的头像
乐闻

2026年06月06日 09:11· 阅读 15

AI Agent 看起来像是在“自主思考”,但从工程角度看,它通常并不是一个不可解释的黑盒。一个可落地的 Agent 系统,往往可以拆解成一套明确的运行循环:理解目标、读取上下文、制定计划、调用工具、观察结果、更新状态,并在必要时继续下一轮执行。

理解这个运行循环非常重要。很多 Agent 项目失败,并不是模型能力不够,而是系统没有把“模型推理”和“工程流程”区分清楚。模型负责判断和生成,系统负责约束、执行、记录和恢复。只有两者配合,Agent 才能稳定工作。

Agent Loop 的基本结构

一个典型 Agent Loop 可以拆成六个阶段。

第一步是接收目标。用户输入的通常不是一个精确指令,而是一个目标。例如“帮我创建一个 AI Agent 教程模块”。系统需要理解用户真正想要的结果,而不只是逐字解释这句话。

第二步是分析上下文。上下文可能来自当前对话、已有文件、数据库记录、用户配置、权限状态、历史任务或外部系统。没有上下文,Agent 很容易做出错误判断。

第三步是制定计划。计划可以很简单,也可以很复杂。简单计划可能只有一步,例如查询某个标签;复杂计划可能包括查重、创建资源、绑定关系、验证结果等多个步骤。

第四步是执行动作。动作通常通过工具完成,例如调用 API、运行命令、读取文件、写入数据库、搜索网页、发送消息等。

第五步是观察结果。工具调用可能成功,也可能失败。结果可能是结构化 JSON,也可能是错误信息。Agent 需要判断结果是否符合预期。

第六步是更新状态并决定是否继续。如果任务未完成,Agent 需要调整计划并进入下一轮循环;如果任务完成,则总结结果并返回给用户。

Planner 与 Executor

在简单 Agent 中,模型可能同时负责计划和执行。但在复杂系统中,通常会拆成 Planner 和 Executor。

Planner 负责回答“应该做什么”。它根据目标和上下文生成步骤,例如:先查询已有数据,再创建缺失资源,最后验证结果。

Executor 负责回答“如何执行”。它接收具体步骤,调用对应工具,并把结果返回给 Planner 或状态管理器。

这种拆分有两个好处。第一,职责更清晰,便于调试。第二,执行层可以加入更多确定性规则,比如权限校验、重试、超时控制和日志记录。

状态为什么重要

Agent 执行多步骤任务时,必须知道自己已经做过什么。状态通常包括:

  • 当前目标;
  • 当前计划;
  • 已执行步骤;
  • 工具调用参数;
  • 工具返回结果;
  • 失败原因;
  • 用户确认记录;
  • 中间产物。

如果没有状态,Agent 很容易重复执行同一个操作。例如已经创建了标签,却因为没有记录结果,又尝试创建一次。或者工具调用失败后,模型忘记失败原因,继续生成不相关回答。

在工程实践中,状态可以保存在内存、数据库、任务队列、工作流引擎或事件日志中。对于长任务,持久化状态尤其重要,因为任务可能被中断、恢复或转交给其他 Agent。

工具调用在循环中的位置

工具调用不是孤立动作,而是 Agent Loop 的一部分。模型决定是否调用工具,系统执行工具,结果再回到模型上下文中。

例如创建一篇文章时,Agent 可能先调用“查询文章”工具确认是否存在,再调用“创建草稿”工具,再调用“创建文章”工具,最后调用“查询文章”工具验证。

每次工具调用都应该有明确目的。如果工具调用只是因为“可能有用”,系统就会变得不可控。好的 Agent 会在调用工具前说明原因,在调用后检查结果。

错误恢复机制

真实系统中,错误是常态。API 可能超时,权限可能不足,参数可能不合法,网络可能失败,数据可能已存在。Agent 需要有错误恢复策略。

常见策略包括:

  • 参数错误:修正参数后重试;
  • 权限不足:提示用户授权;
  • 数据已存在:改为更新或跳过;
  • 网络失败:有限次数重试;
  • 高风险操作:等待用户确认;
  • 不确定错误:停止并报告上下文。

错误恢复不能完全交给模型自由发挥。系统层应该提供明确的错误类型和处理规则。

可观测性与调试

一个生产级 Agent 必须可观测。开发者需要知道:模型看到了什么上下文,生成了什么计划,调用了什么工具,传了什么参数,返回了什么结果,最终为什么做出某个决定。

可观测性通常包括:

  • 任务 trace;
  • 工具调用日志;
  • 模型输入输出摘要;
  • 状态变化记录;
  • 错误堆栈;
  • 用户确认记录。

没有这些信息,Agent 一旦做错事,很难定位原因。

小结

AI Agent 的核心不是一次模型调用,而是一个围绕目标持续运行的循环。这个循环包含计划、执行、观察、状态更新和错误恢复。理解 Agent Loop 后,就能更清楚地设计工具、记忆、工作流和权限边界。

标签: