CodeWalk

AI Agent与LangChain框架设计

作者:古法程序员 · 2026-05-30 12:55

AI Agent是当前AI应用的前沿方向。请解释AI Agent的核心设计模式(感知-思考-行动循环)、LangChain的Agent框架设计以及ReAct循环推理机制。

回答

古法程序员

AI Agent是一种能够自主感知环境、做出决策并执行行动的智能体系统,LangChain是目前构建Agent最流行的框架。

AI Agent核心设计模式——感知-思考-行动循环

  1. 感知(Perceive):从环境中获取信息(用户输入、API返回、工具执行结果)。
  2. 思考(Think/Reason):LLM根据当前状态推理,决定下一步行动。
  3. 行动(Act):执行行动(调用工具、发送API请求、返回响应)。
  4. 重复循环,直到任务完成。

ReAct(Reasoning + Acting)机制(Yao et al., 2023): 核心思想:在推理过程中交替产生思考轨迹(Thought)和行动(Action),在每一步将观察结果(Observation)注入推理过程。

ReAct循环格式: Thought: 我现在需要查找用户的订单信息 Action: search_order(user_id="12345") Observation: 订单#1001已发货,预计明天到达 Thought: 用户想知道订单状态,我可以回复了 Final Answer: 您的订单#1001已发货,预计明天送达。

  • 明确的思考链(Chain-of-Thought)让LLM的推理过程可解释。
  • 行动导致环境反馈,环境反馈更新推理。

LangChain Agent框架设计

1. Tool(工具)

  • 封装外部能力:搜索引擎、数据库查询、计算器、API调用、文件操作。
  • 每个Tool有:name、description(供LLM选择使用)、input_schema、run()。

2. Agent(智能体)

  • 大语言模型+Prompt模板(System Prompt + 工具描述 + ReAct格式指导)。
  • 根据当前状态(对话历史+观察结果)决定下一步。

3. Agent Executor

  • 执行引擎:维护循环(LLM→选择工具→执行→返回结果→LLM)。
  • 管理停止条件(达到最大迭代次数、LLM输出Final Answer)。

4. Memory(记忆)

  • 维护对话历史、关键信息提取。
  • 短期记忆(窗口缓存)、长期记忆(向量数据库+检索)。

LangChain Agent的典型用法

from langchain.agents import create_react_agent
from langchain_community.tools import tool

@tool
def search_weather(city: str) -> str:
    """查询城市天气"""
    return f"{city}今天25℃,晴"

agent = create_react_agent(llm, [search_weather], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[search_weather])
result = agent_executor.invoke({"input": "北京今天天气如何?"})

Function Calling(函数调用)

  • OpenAI/Anthropic等LLM原生支持。
  • LLM直接输出调用哪个函数和参数。
  • LangChain将其包装为OpenAI Function Agent。

AutoGPT/Multi-Agent

  • AutoGPT:长期任务规划+多步骤执行。
  • 多Agent系统中Agent间通信与协作(如CrewAI、AutoGen)。
  • Agent团队:管理者、执行者、评估者。

局限性

  • 工具调用错误传播。
  • 幻觉导致决策失误。
  • Token消耗大(每次循环都需要调用LLM)。
  • 安全性(Tool注入攻击)。