这是一个面向研究的AI Agent框架,专注于实践应用和可扩展架构的探索与实现。
- 🤖 模块化的Agent架构
- 🛠️ 可扩展的工具集成
- 🔄 灵活的工作流管理
- 📊 性能监控
- 🧪 便捷的实验支持
- Python 3.10+
- pip 或其他包管理器
pip install -r requirements.txt
基于 LangChain 和 OpenAI 实现的对话系统,主要组件如下:
-
LLM
ChatOpenAI
- OpenAI GPT 模型接口
- 处理自然语言生成
- 支持模型参数配置
-
Agent
RunnableWithMessageHistory
- 管理对话流程
- 维护会话状态
- 处理多轮对话
chain
- 构建对话处理链
- 连接各个组件
-
Prompt
ChatPromptTemplate
- 管理整体提示结构
- 组合多个提示组件
MessagesPlaceholder
- 处理历史消息插入
SystemMessagePromptTemplate
- 定义系统角色和行为
HumanMessagePromptTemplate
- 格式化用户输入
-
Tools
ChatMessageHistory
- 存储对话历史
- 支持消息追踪
gr.ChatInterface
- 提供 Web 交互界面
- 展示对话内容
使用方法
python agents/simple_conversational_agent.py
注意: 需要配置 OpenAI API 密钥
功能说明
- 基于 ReAct (Reasoning and Acting) 范式实现的智能代理
- 具备推理和行动的双重能力
- 集成搜索工具以获取实时信息
- 支持多轮对话和连续推理
核心组件
-
大语言模型和接口
- OpenAI API 接口封装
- LangChain 集成的 ChatOpenAI 模型
-
Prompt 系统
- 使用 LangChain Hub 中的标准 ReAct 提示模板
- 支持结构化的推理和行动指令
-
Agent 框架
- ReAct Agent 实现
- AgentExecutor 执行器
- 支持思考-行动-观察循环
-
工具集成
- SerpAPIWrapper 搜索工具
- 可扩展的工具注册机制
- 支持动态工具调用
python agents/reason_act.py
功能说明
- 文本摘要:使用 GPT 模型对输入文本进行智能摘要
- 中文翻译:将英文文本自动翻译成中文
- 工具链组合:通过函数调用实现多功能集成
- 自动化处理:Agent 可以自动决策使用适当的工具完成任务
核心组件
-
LLM
ChatOpenAI
- OpenAI GPT 模型接口
- 支持函数调用能力
-
Prompt
PromptTemplate
- 定义代理行为的提示模板
- 用于摘要、翻译和代理指令
-
Agent
create_tool_calling_agent
- 创建支持函数调用的代理
- 基于工具和提示模板构建
AgentExecutor
- 负责执行代理任务
- 协调工具调用流程
-
Tools
StructuredTool
- 将函数包装为结构化工具
BaseModel
(Pydantic)- 定义工具输入参数模式
Field
- 为工具参数添加描述信息
-
UI
gradio.ChatInterface
- 提供交互式聊天界面
- 支持历史对话记录
python agents/function_calling_agent.py
功能说明
- 多模态分析:支持图像和文本的联合分析能力
- 组织架构解析:专门用于解析和理解组织结构图
- JSON结构化输出:将分析结果转换为规范的JSON格式
- 交互式界面:支持图片上传和多轮对话
核心组件
-
LLM
- 模型配置
- GPT-4O-Mini:文本处理模型
- O1:视觉语言模型
o1_vision
- 支持文本和图像的多模态输入
- 可选 JSON 格式输出
- 基于 base64 的图像编码处理
- 支持自定义提示词
- 模型配置
-
Prompt
structured_prompt
- 定义结构化的指令模板
- 指导模型进行组织架构分析
- 规范JSON输出格式
-
Agent
process_message
- 处理多模态输入
- 协调图像和文本分析
- 生成结构化响应
-
UI
gr.ChatInterface
- 支持多模态输入界面
- 允许多文件上传
- 展示交互式对话
使用方法
python agents/4_reasoning_with_o1.py
注意: 需要配置 OpenAI API 密钥和 O1 模型访问权限
我们欢迎各种形式的贡献!请查看贡献指南了解更多信息。
MIT许可证 - 详见LICENSE文件