AI Agent 是能够感知任务、规划步骤、调用工具并执行多步目标的 AI 系统。工程上可以从 ReAct 循环开始,再逐步加入工具校验、记忆、状态持久化和多智能体协作。
ReAct:推理与行动的循环
ReAct(Reasoning and Acting)把任务拆成 Thought、Action 和 Observation 三个阶段。模型先决定下一步,再调用搜索、数据库或业务 API,最后根据返回结果继续执行。它有助于让每一步都可观察、可验证,但不能单独消除幻觉。
def react_loop(task, tools, max_iterations=10):
messages = [{"role": "user", "content": task}]
for _ in range(max_iterations):
decision = llm.invoke(messages)
if decision.is_final:
return decision.answer
result = tools[decision.tool].run(decision.input)
messages.append({"role": "tool", "content": result})
raise RuntimeError("达到最大迭代次数")
生产环境还需要限制工具集合、校验 JSON Schema、设置超时和重试,并记录每次工具调用。
五层 Agent 架构
1. 感知层
把用户输入、文件和结构化事件转换成统一任务,完成意图识别与上下文提取。
2. 规划层
把目标拆成有依赖关系的步骤,并为高风险动作标记人工确认点。
3. 工具层
用明确的名称、输入约束和权限范围注册工具。工具返回值必须经过类型和业务规则校验。
4. 记忆层
短期记忆保存当前会话,长期记忆可以通过向量检索获取相关资料,工作记忆保存本次任务的中间状态。
5. 执行层
负责循环控制、超时、取消、状态持久化和最终结果输出。执行层必须有明确的成功、失败和人工接管状态。
多智能体如何协作
Supervisor 模式由一个协调 Agent 分派研究、编码、审查等角色,控制流清楚,适合流程型任务。Swarm 模式允许多个 Agent 直接交接,适合并行任务,但需要更严格的循环检测和共享状态版本控制。
选型时先看任务边界,再看框架。LangGraph 适合显式状态图,AutoGen 适合对话式协作,CrewAI 适合角色和任务编排。不要只按示例代码的长度决定框架。
生产落地的十个检查点
- 限制最大迭代次数和总 token。
- 对工具输入做 Schema 校验。
- 对外部结果标记来源和时间。
- 高风险操作必须人工确认。
- 为 API 调用设置超时、重试和降级。
- 记录任务状态、工具调用和错误。
- 避免把用户内容当成系统指令。
- 对共享状态使用版本号或锁。
- 为模型和依赖固定可回滚版本。
- 用离线回放集持续评估结果质量。
参考资料与下一步
建议先实现一个只有两个工具、带最大迭代次数和审计日志的 Agent,再逐步扩展到多智能体系统。
