AI Agent与生成式AI入门指南:从核心概念到首个智能体开发

1次阅读
没有评论

共计 2318 个字符,预计需要花费 6 分钟才能阅读完成。

image.webp

核心概念解析

AI Agent是具有自主决策能力的智能体,像具备大脑的虚拟员工。生成式 AI(Generative AI)则是生成文本 / 图像等内容的技术,好比会创作的艺术家。两者常结合使用——比如用生成式 AI 作为 Agent 的 ” 嘴巴 ” 来回答问题。

AI Agent 与生成式 AI 入门指南:从核心概念到首个智能体开发

flowchart LR
    A[用户输入] --> B(Agent 决策)
    B --> C{需要工具吗?}
    C -->| 是 | D[调用搜索引擎 / 数据库]
    C -->| 否 | E[生成式 AI 创作]
    D --> F[结果处理]
    E & F --> G[输出响应]

开发框架选型指南

  • OpenAI API:直接调用大模型,适合快速验证想法
  • LangChain:像乐高积木,能灵活组装工具链(chains)
  • AutoGPT:全自动 Agent,适合非技术背景使用

新手建议:从 LangChain 开始,既不会太底层也不失灵活性。

实战对话 Agent 开发

环境准备

  1. 安装必要库(建议 Python≥3.8)

    pip install langchain openai pandas python-dotenv

  2. .env 文件安全存储 API 密钥

    OPENAI_API_KEY=sk-yourkey
    SERPAPI_API_KEY=yourkey

核心代码实现

from langchain.agents import AgentType, initialize_agent
from langchain.memory import ConversationBufferMemory
from langchain.chat_models import ChatOpenAI
from langchain.tools import Tool
from langchain.utilities import SerpAPIWrapper
import pandas as pd
import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv() 

# 初始化记忆模块
memory = ConversationBufferMemory(memory_key="chat_history")

# 准备工具包
def analyze_dataframe(df: pd.DataFrame):
    return f"数据集包含 {len(df)} 行,列名为:{', '.join(df.columns)}"

tools = [
    Tool(
        name="搜索引擎",
        func=SerpAPIWrapper().run,
        description="用于查询实时信息"
    ),
    Tool(
        name="数据分析",
        func=analyze_dataframe,
        description="输入 DataFrame 对象,返回基础统计信息"
    )
]

# 创建 Agent
agent = initialize_agent(
    tools,
    ChatOpenAI(temperature=0, model="gpt-3.5-turbo"),
    agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION,
    memory=memory,
    verbose=True  # 打印执行过程
)

# 带异常处理的对话示例
try:
    response = agent.run("最近的 AI 新闻有哪些?")
    print(response)

    # 演示 DataFrame 处理
    df = pd.DataFrame({"产品":["A","B"], "销量":[100,200]})
    response = agent.run("分析这个数据集", input_variables={"df": df})
    print(response)

except Exception as e:
    print(f"请求失败: {str(e)}")

关键点说明

  1. ConversationBufferMemory 让 Agent 记住对话历史
  2. Tool 类封装了搜索引擎和数据处理能力
  3. temperature=0 减少生成内容的随机性

生产环境注意事项

成本控制

  • 监控 Token 使用量(1Token≈1 个英文单词)
  • 设置每分钟请求限制:
    from tenacity import retry, stop_after_attempt
    
    @retry(stop=stop_after_attempt(3))
    def safe_agent_run(query):
        return agent.run(query)

数据持久化

将对话历史保存到数据库:

# 使用 SQLite 示例
import sqlite3
conn = sqlite3.connect('chat_history.db')
memory.chat_memory.messages[-1].content  # 获取最新消息

安全防护

添加内容过滤器:

from langchain.output_parsers import CommaSeparatedListOutputParser

blacklist = ["暴力", "敏感词"]
output_parser = CommaSeparatedListOutputParser()

def safe_output(text):
    if any(word in text for word in blacklist):
        return "内容不符合安全策略"
    return text

进阶思考

  1. 评估 Agent 质量
  2. 设计测试用例(如 ” 查询北京天气后推荐穿衣 ”)
  3. 人工评估连贯性 / 实用性

  4. 缓解幻觉问题

  5. 限制回答来源(” 仅基于以下资料回答:…”)
  6. 添加置信度提示(” 我对此不太确定,但 …”)

学习建议

建议从简单任务开始,比如:
– 制作能查天气的微信机器人
– 开发自动整理会议纪要的 Agent

遇到问题时,多查阅 LangChain 官方文档(https://python.langchain.com/)和 OpenAI 社区论坛。

正文完
 0
评论(没有评论)