资讯中心

Agent 开发入门必懂的 10 个核心概念(附代码实战)

📅 2026/7/28 19:13:53
Agent 开发入门必懂的 10 个核心概念(附代码实战)
1. 什么是 Agent在 AI 领域Agent智能体是指能够感知环境、自主决策并执行行动的智能程序。它不仅仅是简单的问答模型而是具备目标导向、工具调用和记忆能力的自主系统。一个典型的 Agent 工作流程是接收用户目标 → 理解任务 → 规划步骤 → 调用工具 → 观察结果 → 调整策略 → 输出最终结果。2. LLM大语言模型—— Agent 的大脑LLM 是 Agent 的核心推理引擎负责理解自然语言指令、生成计划和决策。常见的 LLM 包括 GPT-4、Claude、Gemini 以及开源的 LLaMA、Qwen 等。代码示例初始化 LLMfrom langchain_openai import ChatOpenAI llm ChatOpenAI( modelgpt-4, temperature0.7, api_keyyour-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(contentsystem_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( llmllm, memorymemory, verboseTrue ) 第一轮对话 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(agentagent, toolstools, verboseTrue) 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( agentagent, toolstools, verboseTrue, max_iterations5, # 最大迭代次数 early_stopping_methodgenerate # 提前停止策略 ) 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(agentresearcher_agent, toolstools) 写手 Agent writer_prompt ChatPromptTemplate.from_messages([ (system, 你是一个技术写手负责将研究结果整理成清晰的文章。), (human, 请根据以下研究结果写一篇 200 字的技术说明\n{research}) ]) writer_agent create_tool_calling_agent(llm, [], writer_prompt) writer AgentExecutor(agentwriter_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 Agentfrom 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_size100, chunk_overlap20) docs text_splitter.create_documents(documents) vectorstore Chroma.from_documents(docs, OpenAIEmbeddings()) retriever vectorstore.as_retriever() 创建检索工具 retriever_tool create_retriever_tool( retriever, nameagent_knowledge_base, description搜索 Agent 相关的知识文档 ) 集成到 Agent rag_tools tools [retriever_tool] rag_agent create_tool_calling_agent(llm, rag_tools) rag_executor AgentExecutor(agentrag_agent, toolsrag_tools, verboseTrue) 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) -gt; bool: 检查用户输入是否安全 for pattern in AgentGuardrails.SENSITIVE_PATTERNS: if re.search(pattern, user_input): return False return True staticmethod def check_output(agent_output: str) -gt; str: 过滤 Agent 输出中的敏感信息 # 替换可能的 API Key 或密码 output re.sub(rsk-[a-zA-Z0-9]{20,}, [API_KEY_REDACTED], agent_output) output re.sub(rpassword[:]\s*\S, password[REDACTED], output, flagsre.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 代码只需安装langchain、langchain-openai、langchain-community等依赖即可上手。