Skip to content

ca1sar/SynergyAi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Super Agent

一个基于多智能体协作的全能AI助手系统,通过多个专业智能体协同工作,完成复杂任务。

项目介绍

Super Agent 是一个基于多智能体协作的智能系统,采用了模块化设计,由一个主协调智能体 (Synergy AI) 和多个专业智能体组成。系统具有以下特点:

  • 多智能体协作:通过多个专业智能体的协作,解决复杂问题
  • 模块化设计:各智能体职责明确,便于扩展和维护
  • 共享工作空间:所有智能体共享同一个工作空间,便于数据交换
  • 流式响应:支持流式输出,提供更好的用户体验
  • 持久化存储:支持将计划和工作空间持久化存储,便于任务的中断和恢复

系统架构

核心组件

SynergyAI (主协调智能体)

主要负责与用户对话,理解用户需求,并协调其他专业智能体完成任务。

  • 维护对话上下文和记忆
  • 根据用户需求分配任务给专业智能体
  • 整合各专业智能体的结果,生成最终响应

专业智能体

  1. PlannerAgent (规划智能体)

    • 负责任务规划和管理
    • 根据用户目标创建任务计划
    • 跟踪任务进度,更新任务状态
  2. SearcherAgent (搜索智能体)

    • 负责信息收集和搜索
    • 执行网络搜索,获取相关信息
    • 提取和总结搜索结果
  3. ReporterAgent (报告智能体)

    • 负责生成最终报告
    • 整合收集的信息和分析结果
    • 生成符合用户需求的报告
  4. WorkSpaceManager (工作空间管理器)

    • 管理共享工作空间
    • 提供文件读写、创建、删除等功能
    • 维护项目结构和进度文档

数据存储

  • 内存数据库:用于测试和临时存储
  • 文件数据库:将计划和工作空间持久化到文件系统

项目结构

super_agent/
├── __init__.py
├── prompts/            # 提示词模板
├── src/
│   ├── db.py           # 数据库接口和实现
│   ├── llms.py         # LLM客户端封装
│   ├── memory.py       # 记忆模块
│   ├── planner.py      # 规划智能体
│   ├── reporter.py     # 报告智能体
│   ├── schema.py       # 数据模型定义
│   ├── searcher.py     # 搜索智能体
│   ├── synergy_ai.py   # 主协调智能体
│   └── workspace.py    # 工作空间管理
├── stream/             # 流式处理相关
│   ├── stream_adapter.py
│   ├── stream_chain.py
│   └── stream_obj.py
├── tests/              # 测试代码
└── utils/              # 工具函数

环境配置

环境变量

项目需要在本地创建一个 .env 文件,配置以下环境变量:

# OpenRouter API密钥列表(必需)
# 可以配置多个API密钥,用逗号分隔
OPENROUTER_API_KEY_LIST=key1,key2,key3

# Serper搜索API密钥(必需,用于SearcherAgent执行网络搜索)
SERPER_API_KEY=your_serper_api_key

# OpenAI API密钥(可选)
# 如果主要使用OpenRouter,可以设置为空字符串
OPENAI_API_KEY=

获取API密钥

  • OpenRouter API密钥:访问 OpenRouter 注册并创建API密钥
  • Serper API密钥:访问 Serper 注册并创建API密钥
  • OpenAI API密钥:访问 OpenAI 注册并创建API密钥(可选)

工具列表

SynergyAI 可以调用以下工具来完成任务:

  1. handoff_to_planner

    • 将任务交给规划智能体处理
    • 用于创建任务计划、更新任务状态等
  2. handoff_to_searcher

    • 将任务交给搜索智能体处理
    • 用于网络搜索、信息收集等
  3. handoff_to_reporter

    • 将任务交给报告智能体处理
    • 用于生成报告、总结信息等
  4. handoff_to_workspace_manager

    • 将任务交给工作空间管理器处理
    • 用于文件操作、工作空间管理等

使用方法

安装依赖

uv sync

终端交互

项目提供了一个终端交互脚本,可以直接在命令行中与 Synergy AI 对话:

python terminal_chat.py [session_id]
  • 可选参数 session_id:指定会话ID,用于恢复之前的对话

在交互过程中:

  • 输入 exitquit 退出对话
  • 输入 clear 清空对话历史

编程接口

from src.synergy_ai import SynergyAI
from src.schema import ChatMessage, ChatRequest, MessageType, ContentType

# 创建 SynergyAI 实例
synergy_ai = SynergyAI(session_id="your_session_id")

# 创建聊天消息
message = ChatMessage(
    type=MessageType.USER,
    msg_type=ContentType.TEXT,
    content="请帮我调研人工智能的最新发展",
    timestamp=int(datetime.now().timestamp() * 1000)
)

# 创建聊天请求
request = ChatRequest(
    session_id="your_session_id",
    messages=[message],
    timezone="Asia/Shanghai"
)

# 使用流式接口
async for response in synergy_ai.stream_chat(request):
    print(response)

数据存储

系统使用自定义的数据库接口进行数据存储,支持以下两种实现:

  1. FilePlanDatabase:将计划和工作空间保存为JSON文件
  2. MemoryPlanDatabase:将数据保存在内存中,适用于测试

默认使用 FilePlanDatabase,数据保存在 .super_agent_data 目录下。

未来计划

  • 添加更多专业智能体
  • 支持更多数据存储方式
  • 增强工具调用能力
  • 提供Web界面

About

一个基于任何目标的deepresearch框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors