从零到一:构建 AI Agent 应用
本教程从零开始,构建一个具备工具调用能力的智能研究助手 Agent。
项目概述
功能
- 接收用户研究主题
- 调用搜索工具获取资料
- 调用文档总结工具整理要点
- 生成结构化研究报告
技术栈
- 框架:LangChain
- LLM:OpenAI API 或 Ollama 本地模型
- 工具:模拟搜索与总结(可替换为真实 API)
第一步:环境准备
mkdir research-agent && cd research-agent
python -m venv venv
source venv/bin/activate
pip install langchain langchain-openai langchain-community
第二步:定义工具
# tools.py
from langchain.tools import tool
@tool
def web_search(query: str) -> str:
"""在互联网搜索相关信息,用于获取最新资料"""
# 实际可接入 Serper 、 Tavily 等 API
return f"[模拟搜索结果] 关于 {query} 的资料摘要..."
@tool
def summarize_docs(text: str) -> str:
"""对长文本进行摘要,提炼关键要点"""
return f"[模拟摘要] {text[:100]}..."
第三步:创建 Agent
# agent.py
from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
from tools import web_search, summarize_docs
llm = ChatOpenAI(model="gpt-4", temperature=0.3)
tools = [web_search, summarize_docs]
prompt = ChatPromptTemplate.from_messages([
("system", "你是研究助手。根据用户主题:1) 搜索资料 2) 总结要点 3) 输出结构化报告。"),
("human", "{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True, max_iterations=5)
第四步:运行与测试
if __name__ == "__main__":
result = executor.invoke({"input": "请调研 AI Agent 的最新发展,并输出要点报告"})
print(result["output"])
第五步:扩展建议
- 接入真实搜索 API(Serper、Tavily)
- 增加 RAG,接入向量库做知识增强
- 使用 MCP 标准化工具定义
- 部署为 API 或 Web 应用