Skip to content

amuluowin/ad-agent

Repository files navigation

AI Agent 框架

一个基于LangChain的通用AI Agent框架,可以通过tools来完成各种任务。

功能特性

  • 基于LangChain构建的灵活Agent框架
  • 支持多种工具的集成和扩展
  • 内置内存管理,支持连续对话
  • 易于自定义和扩展
  • 提供丰富的示例和文档
  • 支持自定义回调处理器,实现美化的控制台输出
  • 包含Amazon广告管理特定功能模块

项目结构

ad-agent/
├── src/               # 源代码目录
│   └── ad_agent/      # 主包
│       ├── __init__.py
│       ├── agent.py   # Agent核心实现
│       ├── custom_callbacks.py # 自定义回调处理器
│       ├── amazon/    # Amazon广告管理模块
│       │   ├── __init__.py
│       │   ├── agent.py   # Amazon广告Agent实现
│       │   └── tools.py   # Amazon广告相关工具
│       └── tools/     # 通用工具集
│           ├── __init__.py
│           ├── base.py
│           ├── file_tools.py
│           ├── web_tools.py
│           └── utility_tools.py
├── examples/          # 示例代码
│   ├── basic_usage.py
│   └── amazon_ad_autonomous_demo.py
├── settings.yaml      # 配置文件(包含OpenAI API密钥等)
├── settings.yaml.example # 配置文件示例
├── requirements.txt   # 项目依赖
└── README.md          # 项目说明文档

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置设置

复制settings.yaml.example并创建settings.yaml文件,然后填入正确的OpenAI API配置:

openai:
  model: gpt-4o
  api_key: sk-xxxxxxxxxxxxxxxxx  # 替换为你的API密钥
  base_url: https://api.openai.com/v1

注意:请不要将包含真实API密钥的settings.yaml文件提交到版本控制系统。

3. 运行示例

python examples/basic_usage.py

使用指南

基本用法

from ad_agent.agent import AIAgent
from ad_agent.tools import get_weather

# 初始化Agent
agent = AIAgent()

# 添加工具
agent.add_tool(get_weather)

# 运行Agent
result = agent.run("北京今天的天气怎么样?")
print(result)

添加多个工具

from ad_agent.agent import AIAgent
from ad_agent.tools import get_all_tools

# 初始化Agent
agent = AIAgent()

# 获取所有工具
tools = get_all_tools()

# 添加多个工具
agent.add_tools(tools)

# 运行Agent
result = agent.run("现在几点了?")
print(result)

自定义工具

from langchain_core.tools import tool
from ad_agent.agent import AIAgent

# 定义一个自定义工具
@tool
def calculate_sum(a: int, b: int) -> int:
    """计算两个整数的和。
    
    Args:
        a: 第一个整数
        b: 第二个整数
    
    Returns:
        两个整数的和
    """
    return a + b

# 初始化Agent并添加自定义工具
agent = AIAgent()
agent.add_tool(calculate_sum)

# 使用自定义工具
result = agent.run("使用calculate_sum工具计算100加200的结果")
print(result)  # 应该输出 300

使用Amazon广告管理Agent

from ad_agent.amazon.agent import AmazonAdAgent

# 初始化Amazon广告管理Agent
amazon_agent = AmazonAdAgent()

# 运行广告分析任务
result = amazon_agent.run_task("分析最近30天的广告表现")
print(result)

# 运行广告优化任务
result = amazon_agent.run_task("优化我的广告关键词出价")
print(result)

自定义回调处理器

from ad_agent.agent import AIAgent
from ad_agent.custom_callbacks import ColorfulConsoleCallbackHandler

# 创建自定义回调处理器实例
custom_callback = ColorfulConsoleCallbackHandler(enable_color=True)

# 初始化Agent并使用自定义回调处理器
agent = AIAgent(callback_handler=custom_callback)

# 运行Agent,将会看到彩色的控制台输出
result = agent.run("你好,世界!")

高级特性

会话内存管理

from ad_agent.agent import AIAgent

# 初始化Agent
agent = AIAgent()

# 第一次对话
result1 = agent.run("我叫张三")
print(result1)

# 第二次对话,Agent应该记住你的名字
result2 = agent.run("我叫什么名字?")
print(result2)  # 应该输出类似 "你叫张三" 的回答

# 清空内存
agent.clear_memory()

# 清空内存后,Agent将不再记得之前的对话
result3 = agent.run("我叫什么名字?")
print(result3)  # 应该输出类似 "我不知道你叫什么名字" 的回答

错误处理

from ad_agent.agent import AIAgent

# 初始化Agent
agent = AIAgent()

# 当执行出错时,Agent会返回错误信息
result = agent.run("这是一个会导致错误的请求")
print(result)  # 将包含错误信息

注意事项

  1. 请确保在使用前配置好settings.yaml文件中的OpenAI API密钥
  2. 对于生产环境,建议使用环境变量来管理API密钥
  3. 工具调用可能会有API调用限制,请合理使用
  4. 自定义工具时,请确保提供清晰的文档字符串,这将帮助Agent更好地理解和使用工具
  5. 记得定期更新依赖以获取最新功能和修复

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages