1. 什么是 Agent?

在 AI 领域,Agent(智能体)是指能够感知环境、自主决策并执行行动的智能程序。它不仅仅是简单的问答模型,而是具备目标导向、工具调用和记忆能力的自主系统。

一个典型的 Agent 工作流程是:接收用户目标 → 理解任务 → 规划步骤 → 调用工具 → 观察结果 → 调整策略 → 输出最终结果。

2. LLM(大语言模型)—— Agent 的大脑

LLM 是 Agent 的核心推理引擎,负责理解自然语言指令、生成计划和决策。常见的 LLM 包括 GPT-4、Claude、Gemini 以及开源的 LLaMA、Qwen 等。

代码示例:初始化 LLM

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4",
temperature=0.7,
api_key="your-api-key"
)
response = llm.invoke("请解释什么是 Agent?")
print(response.content)

3. Tool(工具)—— Agent 的手脚

工具是 Agent 与外部世界交互的接口,包括搜索引擎、计算器、数据库查询、API 调用、文件操作等。Agent 通过 LLM 决定何时调用哪个工具。

代码示例:定义工具

from langchain.tools import tool
@tool
def calculate(expression: str) -> str:
"""计算数学表达式的结果"""
try:
return str(eval(expression))
except Exception as e:
return f"计算错误: {e}"
@tool
def get_weather(city: str) -> str:
"""查询指定城市的天气(模拟)"""
return f"{city} 今天天气晴朗,温度 25°C"
tools = [calculate, get_weather]

4. Prompt(提示词)—— Agent 的行为指南

Prompt 定义了 Agent 的角色、行为规则和输出格式。精心设计的 Prompt 能显著提升 Agent 的表现,包括系统提示词(System Prompt)和用户提示词(User Prompt)。

代码示例:系统提示词

system_prompt = """
你是一个专业的 AI 编程助手。请遵循以下规则:
1. 始终用中文回答
2. 提供可运行的代码示例
3. 解释代码的关键逻辑
4. 如果遇到不确定的问题,请坦诚说明
"""
from langchain_core.messages import SystemMessage, HumanMessage
messages = [
SystemMessage(content=system_prompt),
HumanMessage(content="请用 Python 写一个二分查找算法")
]
response = llm.invoke(messages)
print(response.content)

5. Memory(记忆)—— Agent 的短期与长期记忆

记忆机制让 Agent 能够记住对话历史、用户偏好和任务上下文。短期记忆通常通过对话历史实现,长期记忆则依赖向量数据库或结构化存储。

代码示例:对话记忆

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
conversation = ConversationChain(
llm=llm,
memory=memory,
verbose=True
)
第一轮对话
conversation.predict(input="我叫小明")
第二轮对话(Agent 记得名字)
conversation.predict(input="我叫什么名字?")

6. Planning(规划)—— Agent 的任务分解能力

规划能力让 Agent 能够将复杂任务拆解为多个子步骤,并按顺序或并行执行。常见的规划策略包括 ReAct(推理+行动)、Plan-and-Execute(先规划后执行)和 Tree-of-Thought(思维树)。

代码示例:ReAct 规划

from langchain.agents import create_react_agent
from langchain.agents import AgentExecutor
from langchain_core.prompts import PromptTemplate
react_prompt = PromptTemplate.from_template("""
你是一个智能助手,请逐步思考并行动。
可用工具:
{tools}
工具名称格式:{tool_names}
请按以下格式回答:
思考:你当前的想法
行动:工具名称
行动输入:工具的输入参数
观察:工具返回的结果
...(重复思考-行动-观察)
最终答案:你的最终回答
用户问题:{input}
{agent_scratchpad}
""")
agent = create_react_agent(llm, tools, react_prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "计算 (15 + 27) * 3 的结果,然后查询北京的天气"})
print(result["output"])

7. Agent Executor(执行器)—— Agent 的运行引擎

Agent Executor 负责协调 LLM、工具和记忆之间的交互循环。它管理着思考-行动-观察的迭代过程,直到 Agent 得出最终答案或达到最大迭代次数。

代码示例:自定义执行器

from langchain.agents import AgentExecutor
from langchain.agents import create_tool_calling_agent
使用工具调用能力(Tool Calling)
agent = create_tool_calling_agent(llm, tools)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True,
max_iterations=5,  # 最大迭代次数
early_stopping_method="generate"  # 提前停止策略
)
response = agent_executor.invoke({
"input": "帮我计算 2 的 10 次方是多少?"
})
print(response["output"])

8. Multi-Agent(多智能体协作)

多智能体系统让多个 Agent 协同工作,每个 Agent 负责不同的角色或任务。常见的模式包括:主管-员工模式、辩论模式、投票模式和流水线模式。

代码示例:双 Agent 协作

from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
研究员 Agent
researcher_prompt = ChatPromptTemplate.from_messages([
("system", "你是一个研究员,负责收集和分析信息。请提供详细的数据和事实。"),
("human", "{input}")
])
researcher_agent = create_tool_calling_agent(llm, tools, researcher_prompt)
researcher = AgentExecutor(agent=researcher_agent, tools=tools)
写手 Agent
writer_prompt = ChatPromptTemplate.from_messages([
("system", "你是一个技术写手,负责将研究结果整理成清晰的文章。"),
("human", "请根据以下研究结果写一篇 200 字的技术说明:\n{research}")
])
writer_agent = create_tool_calling_agent(llm, [], writer_prompt)
writer = AgentExecutor(agent=writer_agent, tools=[])
协作流程
research_result = researcher.invoke({"input": "Python 异步编程的核心概念"})
article = writer.invoke({"research": research_result["output"]})
print(article["output"])

9. RAG(检索增强生成)—— Agent 的知识库

RAG 让 Agent 能够从外部知识库中检索相关信息,弥补 LLM 知识截止日期和幻觉问题。结合向量数据库(如 Chroma、Pinecone)和嵌入模型,Agent 可以访问私有文档和实时数据。

代码示例:RAG Agent

from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.tools.retriever import create_retriever_tool
准备文档
documents = [
"Agent 的核心组件包括 LLM、工具、记忆和规划器。",
"ReAct 模式让 Agent 交替进行推理和行动。",
"多智能体系统通过角色分工实现复杂任务协作。"
]
文档切分和向量化
text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=20)
docs = text_splitter.create_documents(documents)
vectorstore = Chroma.from_documents(docs, OpenAIEmbeddings())
retriever = vectorstore.as_retriever()
创建检索工具
retriever_tool = create_retriever_tool(
retriever,
name="agent_knowledge_base",
description="搜索 Agent 相关的知识文档"
)
集成到 Agent
rag_tools = tools + [retriever_tool]
rag_agent = create_tool_calling_agent(llm, rag_tools)
rag_executor = AgentExecutor(agent=rag_agent, tools=rag_tools, verbose=True)
result = rag_executor.invoke({"input": "ReAct 模式是什么?它有什么作用?"})
print(result["output"])

10. 安全与护栏(Safety & Guardrails)—— Agent 的安全带

安全机制确保 Agent 的行为在可控范围内,包括输入验证、输出过滤、权限控制和人工审核。常见的护栏技术包括:内容过滤、敏感操作确认、速率限制和审计日志。

代码示例:简单护栏实现

import re
class AgentGuardrails:
"""Agent 安全护栏"""
SENSITIVE_PATTERNS = [
    r"删除.*数据库",
    r"执行.*系统命令",
    r"获取.*密码",
    r"修改.*权限"
]
@staticmethod
def check_input(user_input: str) -> bool:
"""检查用户输入是否安全"""
for pattern in AgentGuardrails.SENSITIVE_PATTERNS:
if re.search(pattern, user_input):
return False
return True
@staticmethod
def check_output(agent_output: str) -> str:
"""过滤 Agent 输出中的敏感信息"""
# 替换可能的 API Key 或密码
output = re.sub(r"sk-[a-zA-Z0-9]{20,}", "[API_KEY_REDACTED]", agent_output)
output = re.sub(r"password[=:]\s*\S+", "password=[REDACTED]", output, flags=re.IGNORECASE)
return output
使用示例
def safe_agent_execute(user_input: str):
if not AgentGuardrails.check_input(user_input):
return "输入包含敏感操作,已拒绝执行"
result = agent_executor.invoke({"input": user_input})
safe_output = AgentGuardrails.check_output(result["output"])
return safe_output
测试
print(safe_agent_execute("帮我计算 3 + 5"))
print(safe_agent_execute("删除整个数据库"))

总结

以上 10 个核心概念构成了 Agent 开发的基础框架:

  • LLM 提供推理能力
  • 工具 扩展行动边界
  • Prompt 定义行为规范
  • 记忆 维持上下文连贯
  • 规划 分解复杂任务
  • 执行器 驱动循环迭代
  • 多智能体 实现协作分工
  • RAG 注入外部知识
  • 安全护栏 保障可控运行

建议读者按照上述顺序逐个实践代码示例,从简单的 LLM 调用开始,逐步构建完整的 Agent 系统。每个概念都配有可直接运行的 Python 代码,只需安装 langchainlangchain-openailangchain-community 等依赖即可上手。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐