一个基于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 # 项目说明文档
pip install -r requirements.txt复制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文件提交到版本控制系统。
python examples/basic_usage.pyfrom 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) # 应该输出 300from 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) # 将包含错误信息- 请确保在使用前配置好
settings.yaml文件中的OpenAI API密钥 - 对于生产环境,建议使用环境变量来管理API密钥
- 工具调用可能会有API调用限制,请合理使用
- 自定义工具时,请确保提供清晰的文档字符串,这将帮助Agent更好地理解和使用工具
- 记得定期更新依赖以获取最新功能和修复