Agent 架构概述

一个基本的 Agent 由以下部分组成:

  1. LLM:决策大脑,决定下一步行动
  2. Tools:可调用的外部工具(搜索、计算器等)
  3. Memory:对话历史和中间结果
  4. Agent Executor:执行循环,协调以上组件

代码实现

from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import tool
from langchain_openai import ChatOpenAI

@tool
def search(query: str) -> str:
    """搜索互联网获取信息"""
    # 实现搜索逻辑
    return f"搜索结果:{query}的相关信息..."

@tool
def calculator(expression: str) -> str:
    """计算数学表达式"""
    try:
        return str(eval(expression))
    except Exception as e:
        return f"计算错误:{e}"

tools = [search, calculator]
llm = ChatOpenAI(model="gpt-4", temperature=0)

agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 运行
result = agent_executor.invoke({"input": "2024年世界杯冠军是哪个国家?"})

关键注意事项

  • 错误处理:工具调用可能失败,需要重试机制
  • Token 限制:对话历史过长时需要截断或摘要
  • 安全边界:限制 Agent 可执行的操作范围