2026年AI Agent实战教程:用Python从零构建智能代理

AI快讯 2026-06-02

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成为真正的数字助手

最佳实践建议

  1. 工具隔离:每个工具只做一件事,保持接口简单明了
  2. 错误处理:工具执行失败时返回友好的错误信息,而不是崩溃
  3. 权限控制:严格限制Agent能够执行的敏感操作
  4. 成本管理:设置Token使用上限,避免API调用失控
  5. 安全沙箱:在隔离环境中运行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工具集原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。

相关文章