Agent框架初学者LangChain

从零开始:构建你的第一个AI Agent

2025-01-10·15 分钟·Agent框架

从零开始:构建你的第一个AI Agent

欢迎来到Agent开发的世界!在本文中,我们将从零开始,构建你的第一个AI Agent。不用担心,我们会一步步来,确保即使你是完全的初学者也能跟上。

什么是AI Agent?

AI Agent(人工智能代理)是一个能够自主感知环境、做出决策并执行行动的智能系统。与传统的聊天机器人不同,Agent可以:

  • 理解复杂指令
  • 规划执行步骤
  • 使用外部工具
  • 从错误中学习

简单来说,Agent就是一个"会思考"的AI助手!

准备工作

在开始之前,你需要准备以下工具:

1. 安装Python

确保你的电脑上安装了Python 3.8或更高版本。你可以在终端中运行:

python --version

2. 安装必要的库

打开终端,运行以下命令安装LangChain和OpenAI:

pip install langchain openai python-dotenv

3. 获取OpenAI API密钥

  • 访问 OpenAI官网
  • 注册账号并登录
  • 在API密钥页面创建新的密钥
  • 重要:妥善保管你的密钥,不要分享给他人!

创建你的第一个Agent

让我们开始编写代码!创建一个新文件 my_first_agent.py

步骤1:设置环境

首先,我们需要设置API密钥。创建一个 .env 文件:

OPENAI_API_KEY=你的API密钥

步骤2:导入必要的库

import os
from langchain.agents import AgentType, initialize_agent
from langchain.tools import Tool
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

步骤3:创建语言模型

# 初始化OpenAI模型
llm = ChatOpenAI(
    model="gpt-4",
    temperature=0,
    openai_api_key=os.getenv("OPENAI_API_KEY")
)

步骤4:定义工具

Agent需要工具来完成任务。让我们创建一个简单的计算器工具:

def calculator(expression: str) -> str:
    """简单的计算器工具,可以执行基本的数学运算"""
    try:
        result = eval(expression)
        return f"计算结果: {result}"
    except Exception as e:
        return f"计算错误: {str(e)}"

# 创建工具列表
tools = [
    Tool(
        name="计算器",
        func=calculator,
        description="用于执行数学计算,输入数学表达式,返回计算结果"
    )
]

步骤5:初始化Agent

# 创建Agent
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True  # 设置为True可以看到Agent的思考过程
)

步骤6:与Agent交互

# 测试Agent
question = "帮我计算:(25 * 4) + (100 / 5)"

response = agent.run(question)

print(f"\n问题: {question}")
print(f"回答: {response}")

运行你的Agent

现在,让我们运行这个程序:

python my_first_agent.py

你应该会看到Agent的思考过程和最终答案!

理解Agent的工作原理

让我们分解一下发生了什么:

  1. 接收输入:Agent接收到你的问题
  2. 思考:Agent分析问题,决定需要使用哪个工具
  3. 行动:Agent调用计算器工具
  4. 观察:Agent查看工具返回的结果
  5. 回答:Agent基于结果给出最终答案

这个过程叫做 ReAct(Reasoning + Acting),是Agent的核心工作模式。

进阶:添加更多工具

让我们添加一个搜索工具,让Agent可以上网查找信息:

def search_web(query: str) -> str:
    """模拟网络搜索功能"""
    # 这里可以使用真实的搜索API
    return f"关于'{query}'的搜索结果..."

# 更新工具列表
tools = [
    Tool(
        name="计算器",
        func=calculator,
        description="用于执行数学计算"
    ),
    Tool(
        name="搜索引擎",
        func=search_web,
        description="用于搜索网络信息"
    )
]

常见问题解答

Q: Agent不会回答我的问题怎么办?

A: 检查以下几点:

  • API密钥是否正确
  • 工具描述是否清晰
  • 问题是否过于复杂

Q: 如何让Agent更智能?

A: 你可以:

  • 使用更强大的模型(如GPT-4)
  • 添加更多工具
  • 优化提示词
  • 使用记忆功能

Q: Agent会出错吗?

A: 当然!Agent也会犯错。重要的是:

  • 提供清晰的工具描述
  • 设置适当的温度参数
  • 添加错误处理机制

下一步

恭喜你创建了第一个AI Agent!🎉

接下来,你可以:

  1. 学习RAG技术:让Agent拥有知识库
  2. 探索多Agent系统:让多个Agent协作
  3. 深入学习提示工程:优化Agent的表现
  4. 构建实际应用:将Agent集成到真实项目中

总结

在本文中,我们学习了:

  • ✅ 什么是AI Agent
  • ✅ 如何设置开发环境
  • ✅ 如何使用LangChain构建Agent
  • ✅ Agent的工作原理
  • ✅ 如何添加工具

记住,Agent开发是一个迭代的过程。不断尝试、测试和改进,你会发现Agent的无限可能!

祝你在Agent开发的旅程中一切顺利! 🚀


参考资源: