2026年AI Agent实战教程:用Python从零构建智能代理
2026年AI Agent实战教程:用Python从零构建智能代理
2026年,AI Agent(智能代理)已成为人工智能领域最热门的技术趋势之一。从自动编码到智能客服,AI Agent正在重塑各行各业的工作方式。本文将从零开始,带你构建一个实用的Python AI Agent。
什么是AI Agent?
AI Agent是一种能够自主感知环境、做出决策并执行行动的智能程序。与传统的聊天机器人不同,AI Agent可以调用外部工具、访问网络、执行代码,甚至自主规划复杂的多步骤任务。
准备工作
首先,确保你的环境安装了Python 3.10+和必要的依赖包:
pip install openai python-dotenv requests beautifulsoup4
第一步:创建基础Agent框架
import json
import openai
from typing import List, Dict, Any
class AIAgent:
"""基础的AI Agent框架"""
def __init__(self, api_key: str, model: str = "gpt-4"):
self.client = openai.OpenAI(api_key=api_key)
self.model = model
self.tools = []
self.conversation_history = []
def register_tool(self, name: str, description: str,
func: callable, parameters: Dict):
"""注册Agent可以调用的工具"""
self.tools.append({
"type": "function",
"function": {
"name": name,
"description": description,
"parameters": parameters
}
})
self._tool_funcs[name] = func
def run(self, user_input: str) -> str:
"""运行Agent处理用户输入"""
self.conversation_history.append({
"role": "user", "content": user_input
})
response = self.client.chat.completions.create(
model=self.model,
messages=self.conversation_history,
tools=self.tools if self.tools else None
)
assistant_msg = response.choices[0].message
# 处理工具调用
if assistant_msg.tool_calls:
for tool_call in assistant_msg.tool_calls:
tool_name = tool_call.function.name
tool_args = json.loads(tool_call.function.arguments)
result = self._tool_funcs[tool_name](**tool_args)
self.conversation_history.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": str(result)
})
# 获取最终回复
final_response = self.client.chat.completions.create(
model=self.model,
messages=self.conversation_history
)
return final_response.choices[0].message.content
return assistant_msg.content
第二步:注册实用工具
为Agent注册一个网页搜索工具和一个计算器工具:
import requests
def web_search(query: str) -> str:
"""执行网络搜索并返回结果"""
try:
response = requests.get(
f"https://api.duckduckgo.com/?q={query}&format=json"
)
return response.text[:1000]
except Exception as e:
return f"搜索失败: {str(e)}"
def calculator(expression: str) -> str:
"""执行数学计算"""
try:
# 安全的数学计算
allowed_names = {"abs": abs, "round": round,
"max": max, "min": min}
result = eval(expression, {"__builtins__": {}}, allowed_names)
return str(result)
except Exception as e:
return f"计算错误: {str(e)}"
# 创建Agent并注册工具
agent = AIAgent(api_key="your-api-key")
agent.register_tool(
"web_search",
"搜索互联网获取最新信息",
web_search,
{"query": {"type": "string", "description": "搜索关键词"}}
)
agent.register_tool(
"calculator",
"执行数学计算",
calculator,
{"expression": {"type": "string",
"description": "数学表达式,如 2+2*3"}}
)
第三步:运行Agent
# 测试Agent
result = agent.run("请搜索今天AI领域的最新新闻,然后总结给我")
print(result)
进阶功能
完成基础Agent后,你可以进一步扩展:
- 记忆系统:使用向量数据库(如ChromaDB或Pinecone)为Agent添加长期记忆
- 多Agent协作:让多个Agent分工协作,一个负责搜索,一个负责分析,一个负责生成报告
- 自主规划:实现ReAct(Reasoning + Acting)模式,让Agent能够自主分解复杂任务
- 文件处理:添加读写文件的能力,让Agent能够处理本地文档
- API集成:集成Slack、邮箱等API,让Agent成为真正的数字助手
最佳实践建议
- 工具隔离:每个工具只做一件事,保持接口简单明了
- 错误处理:工具执行失败时返回友好的错误信息,而不是崩溃
- 权限控制:严格限制Agent能够执行的敏感操作
- 成本管理:设置Token使用上限,避免API调用失控
- 安全沙箱:在隔离环境中运行Agent生成的代码,确保系统安全
通过以上步骤,你已经成功构建了一个具备工具调用能力的AI Agent。2026年,AI Agent技术正在飞速发展,掌握这一技能将成为AI工程师的核心竞争力。推荐进一步参考Towards Data Science的"Ultimate Beginners' Guide to Building an AI Agent in Python"和KDnuggets的"7 Real World AI Projects to Build in 2026"获取更多实战案例。
©️版权声明:若无特殊声明,本站所有文章版权均归AI工具集原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。