AI Agent开发入门:从提示词到多Agent系统实战

发布时间:2026/7/23 15:04:59
AI Agent开发入门:从提示词到多Agent系统实战 1. AI Agent框架入门从零开始理解智能体开发第一次接触AI Agent这个概念时我正为一个客户项目焦头烂额——需要开发一个能自动处理客服咨询的智能系统。传统规则引擎已经无法应对复杂的用户需求直到发现了基于大模型的Agent框架才真正打开了智能开发的大门。AI Agent本质上是一个能感知环境、自主决策并执行动作的智能程序它通过大语言模型(LLM)作为大脑配合各种工具和记忆系统完成特定任务。对于程序员来说掌握AI Agent开发意味着能用自然语言编程大幅提升开发效率构建真正智能的应用而不仅是机械的规则系统在AI时代保持技术竞争力市面上主流的Agent框架包括LangChain、AutoGen、CrewAI等它们各有特点LangChain生态最丰富适合快速原型开发AutoGen微软出品多Agent协作能力强CrewAI面向企业级应用稳定性好提示新手建议从LangChain开始它的文档最完善社区支持最好遇到问题容易找到解决方案。2. 核心技能拆解小白程序员的四阶段成长路径2.1 第一阶段基石搭建 - 提示词与API调用所有AI Agent的基础都是大语言模型而与大模型沟通的核心技能就是提示词工程。我曾花两周时间专门研究这个领域发现几个关键点零样本提示直接给模型任务描述# 示例简单的零样本提示 prompt 请将以下英文翻译成中文: Hello, how are you?少样本提示提供几个示例# 示例少样本提示 prompt 示例1: 输入: Happy 输出: 开心 示例2: 输入: Sad 输出: 难过 现在请翻译: Excited 思维链(CoT)让模型展示推理过程prompt 小明有5个苹果给了小红2个又买了4个。他现在有多少苹果请一步步思考。API调用是另一个基础技能。以OpenAI API为例基本调用流程如下安装SDKpip install openai设置API密钥发送请求获取响应import openai openai.api_key your-api-key response openai.ChatCompletion.create( modelgpt-3.5-turbo, messages[ {role: user, content: 请用Python写一个计算斐波那契数列的函数} ] ) print(response.choices[0].message.content)常见问题API调用超时怎么办检查网络连接增加timeout参数使用重试机制2.2 第二阶段Agent核心范式 - ReAct与框架应用ReAct(Reasoning and Acting)是Agent的核心工作模式它包含三个关键步骤Thought分析当前情况Action决定采取什么行动Observation观察行动结果这个循环让Agent能像人类一样思考和行动。在LangChain中实现一个简单ReAct Agentfrom langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.llms import OpenAI llm OpenAI(temperature0) tools load_tools([serpapi, llm-math], llmllm) agent initialize_agent(tools, llm, agentzero-shot-react-description, verboseTrue) agent.run(目前特斯拉股价是多少如果我现在投资10000美元涨到当前价格的120%时我能赚多少钱)框架学习要点LangChain的核心概念Chains将多个步骤串联ToolsAgent可以使用的功能Agents决策核心Memory记忆上下文实操技巧调试Agent时设置verboseTrue可以看到详细思考过程这对排查问题非常有帮助。2.3 第三阶段增强能力 - 记忆与工具调用没有记忆的Agent就像金鱼只能处理当前对话。添加记忆的方法会话缓存(短期记忆)from langchain.memory import ConversationBufferMemory memory ConversationBufferMemory() agent initialize_agent(tools, llm, agentconversational-react-description, memorymemory, verboseTrue)向量数据库(长期记忆)from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings embeddings OpenAIEmbeddings() documents [AI Agent是一种智能程序, LangChain是流行的Agent框架] vectorstore FAISS.from_texts(documents, embeddings) retriever vectorstore.as_retriever()工具调用让Agent能影响现实世界。常用工具包括搜索引擎计算器API调用数据库查询开发自定义工具示例from langchain.tools import BaseTool class CustomCalculatorTool(BaseTool): name Calculator description 用于执行数学计算 def _run(self, query: str) - str: return str(eval(query)) async def _arun(self, query: str) - str: return self._run(query)2.4 第四阶段高级应用 - 多Agent系统当任务变得复杂时需要多个Agent协作。多Agent系统的常见模式管理者-执行者一个Agent分配任务其他Agent执行辩论模式多个Agent讨论得出最佳方案专业分工不同Agent负责不同专业领域使用AutoGen搭建多Agent系统from autogen import AssistantAgent, UserProxyAgent assistant AssistantAgent(assistant) user_proxy UserProxyAgent(user_proxy) user_proxy.initiate_chat( assistant, message帮我分析特斯拉最近一个季度的财报并给出投资建议 )性能优化技巧限制每个Agent的token使用量避免成本失控。3. 实战项目演练从个人助手到商业应用3.1 个人研究助手开发这个项目实现输入研究主题Agent自动搜索文献、整理摘要并生成报告。核心组件网络搜索工具PDF解析工具摘要生成链from langchain.chains import RetrievalQA from langchain.document_loaders import WebBaseLoader from langchain.text_splitter import RecursiveCharacterTextSplitter # 加载网页内容 loader WebBaseLoader([https://example.com/research-paper]) data loader.load() # 分割文本 text_splitter RecursiveCharacterTextSplitter(chunk_size1000, chunk_overlap200) texts text_splitter.split_documents(data) # 创建检索系统 retriever FAISS.from_documents(texts, embeddings).as_retriever() # 创建问答链 qa RetrievalQA.from_chain_type(llmllm, chain_typestuff, retrieverretriever) result qa.run(这篇论文的主要贡献是什么)3.2 自动化工作流机器人监听邮箱附件自动处理Excel数据并发送汇总邮件的机器人import pandas as pd from langchain.tools import tool import smtplib from email.mime.text import MIMEText tool def analyze_excel(file_path: str) - str: 分析Excel文件并返回汇总统计 df pd.read_excel(file_path) return f 数据概览 行数: {len(df)} 列数: {len(df.columns)} 数值列平均值: {df.select_dtypes(includenumber).mean().to_dict()} tool def send_email(summary: str, recipient: str) - str: 发送汇总邮件 msg MIMEText(summary) msg[Subject] 数据分析报告 msg[From] botexample.com msg[To] recipient with smtplib.SMTP(smtp.example.com) as server: server.send_message(msg) return 邮件发送成功3.3 行业专家Agent模拟金融分析师的Agent能解读财报数据from langchain.agents import Tool from langchain_experts.finance import FinancialDataAnalyzer financial_tool Tool( nameFinancialAnalyzer, funcFinancialDataAnalyzer.analyze, description分析财务数据包括资产负债表、利润表和现金流量表 ) agent initialize_agent( [financial_tool], llm, agentzero-shot-react-description, verboseTrue ) agent.run(请分析苹果公司最新财报的盈利能力)4. 避坑指南与性能优化4.1 常见问题排查Agent陷入循环设置最大迭代次数添加超时机制优化提示词限制范围工具调用失败检查工具描述是否准确验证工具输入输出格式添加错误处理逻辑记忆混乱定期清理记忆缓冲区使用更精确的检索方法实现记忆重要性评分4.2 成本控制技巧大模型API调用可能产生高额费用控制成本的实用方法缓存机制from langchain.cache import InMemoryCache langchain.llm_cache InMemoryCache()限制token使用llm OpenAI(max_tokens500)使用本地小模型处理简单任务监控使用量from langchain.callbacks import get_openai_callback with get_openai_callback() as cb: agent.run(你的问题) print(cb)4.3 性能优化策略并行处理from langchain.agents import AgentExecutor from concurrent.futures import ThreadPoolExecutor def run_agent(question): agent create_agent() return agent.run(question) with ThreadPoolExecutor() as executor: results list(executor.map(run_agent, questions))精简工具集只保留必要的工具合并相似功能工具优化工具描述提高匹配精度模型选择简单任务使用小模型复杂分析使用大模型混合使用不同模型在实际项目中我发现最有效的优化往往来自对业务场景的深入理解。比如一个客服Agent80%的问题集中在20%的主题上针对这些高频问题定制小型专用模型可以大幅提升响应速度并降低成本。