如何使用AI创建智能代理(Agent)初探

什么是AI Agent?

AI Agent是一个能够感知环境、做出决策并执行行动的智能系统。它可以自主完成任务,与用户交互,并在复杂环境中进行推理。

创建AI Agent的完整过程

  1. 环境准备和工具选择
    首先,我们需要选择合适的工具和框架:
# 所需库的安装
# pip install openai langchain python-dotenv requests beautifulsoup4
  1. 设计Agent架构
    一个基础的AI Agent通常包含以下组件:
    感知模块(处理输入)
    推理引擎(决策制定)
    记忆系统(存储信息)
    行动模块(执行任务)

  2. 实现基础Agent

import os
from dotenv import load_dotenv
from langchain.agents import Tool, AgentExecutor, LLMSingleActionAgent
from langchain import OpenAI, SerpAPIWrapper
from langchain.chains import LLMChain
from langchain.memory import ConversationBufferWindowMemory
from langchain.schema import BaseOutputParser
import json

加载环境变量

load_dotenv()

class CustomOutputParser(BaseOutputParser):
    """自定义输出解析器"""
    def parse(self, text: str):
        return text.strip()

class SimpleAgent:
    def __init__(self, model_name="gpt-3.5-turbo"):
        # 初始化LLM
        self.llm = OpenAI(
            temperature=0.7,
            model_name=model_name,
            openai_api_key=os.getenv("OPENAI_API_KEY")
        )
        
        # 初始化记忆系统
        self.memory = ConversationBufferWindowMemory(
            k=5,
            memory_key="chat_history",
            return_messages=True
        )
        
        # 定义工具
        self.tools = self._setup_tools()
        
        # 创建Agent执行器
        self.agent_executor = self._create_agent()
    
    def _setup_tools(self):
        """设置Agent可用的工具"""
        
        # 计算工具
        def calculator_tool(expression):
            try:
                result = eval(expression)
                return f"计算结果: {
     
     result}"
            except:
                return "无法计算该表达式"
        
        # 时间工具
        def time_tool(query):
            from datetime import datetime
            now = datetime.now()
            return f"当前时间: {
     
     now.strftime('%Y-%m-%d %H:%M:%S')}"
        
        # 网络搜索工具(需要API密钥)
        def search_tool(query):
            # 这里可以使用SerpAPI或其他搜索API
            return f"搜索功能需要配置API密钥 - 查询: {
     
     query}"
        
        tools = [
            Tool(
                name="Calculator",
                func=calculator_tool,
                description="用于数学计算,输入数学表达式"
            ),
            Tool(
                name="Time",
                func=time_tool,
                description="获取当前时间"
            ),
            Tool(
                name="Search",
                func=search_tool,
                description="搜索网络信息"
            )
        ]
        
        return tools
    
    def _create_agent(self):
        """创建Agent执行器"""
        
        # 简单的提示模板
        prompt_template = """
        你是一个智能助手,可以帮用户解决各种问题。
        你可以使用的工具:
        {tools}
        
        对话历史:
        {chat_history}
        
        用户输入:{input}
        
        请根据情况选择合适的工具或直接回答。
        如果使用工具,请说明使用了什么工具和结果。
        """
        
        from langchain.prompts import PromptTemplate
        prompt = PromptTemplate(
            template=prompt_template,
            input_variables=["input", "chat_history", "tools"]
        )
        
        # 创建LLM链
        llm_chain = LLMChain(llm=self.llm, prompt=prompt)
        
        # 这里简化了Agent的创建,实际项目中可以使用更复杂的Agent类型
        return llm_chain
    
    def run(self, user_input):
        """运行Agent"""
        try:
            # 准备输入
            tools_description = "\n".join([
                f"{
     
     tool.name}: {
     
     tool.description}" 
                for tool in self.tools
            ])
            
            # 获取记忆
            chat_history = self.memory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值