Skip to content

Feature: 多智能体协作系统 #150

@MiaowFISH

Description

@MiaowFISH

Describe the problem related to the feature request

当前系统提示词过于复杂,使用单一智能体承担角色扮演、响应流程、思维链、工具调用、核心记忆等多种职责。如 #149 中提到的,这种设计要求模型有较强的能力,同时限制了在特定任务上的表现,难以发挥模型的最佳性能

Describe the solution you'd like

通过引入多智能体协作系统来优化整体架构。每个智能体将专注于一个独立的、定义明确的任务,希望能提升系统的模块化和可扩展性。为每个特定任务选择最合适的模型,还可以有效降低响应延迟和API调用成本

核心思路:
将复杂任务分解,设计专注于特定领域的子智能体。初期规划的子智能体包括:

  • 回复生成: 专注于根据上下文生成高质量、连贯的回复
  • 工具调用: 负责解析用户意图,并准确调用相关工具或API
  • 记忆维护: 负责长期和短期记忆的管理与检索
  • 统一协调: 作为总指挥,负责接收用户请求,并将任务路由给合适的子智能体,最后汇总结果

未来可扩展的智能体:

  • 情感分析: 用于识别和响应用户情绪,提取潜在意图
  • 任务处理: 专注于执行更复杂的、多步骤的任务

实施路径:
该方案将分两个阶段进行:

第一阶段:实现异步工具调用与任务系统
这是构建多智能体系统的基础。我们将设计一个异步任务系统,使工具调用不再阻塞主对话流程。

  1. 异步执行:当需要调用一个复杂工具(例如 DeepSearch)时,系统将立即返回一个任务ID,并在后台异步执行该工具
  2. 事件唤醒:任务完成后,通过系统事件唤醒响应流程,并将结果整合到对话中
    这种设计不仅能优化用户体验,还能将复杂的工具调用改写为由专门的子智能体处理的形式

第二阶段:构建智能体通信与协作机制
在异步任务系统的基础上,我们将进一步构建完整的智能体协作框架。

  1. 抽象核心智能体:将 agent-core 提取为抽象基类,为所有智能体提供标准化的接口和能力
  2. 建立通信机制:设计智能体之间的通信协议和消息传递机制,确保它们可以高效协作
  3. 创建子智能体:基于新的框架,正式创建并集成上文提到的各类子智能体

Describe alternatives you've considered

在实现多智能体协作之前,仍可以从提示词设计角度入手,持续优化单一智能体提示词

引入提示词编排层,考虑在现有智能体前增加一个“提示词路由器”,根据任务动态选择和组合提示词。

Additional context

引入异步任务系统还将带来一些额外的优势:

  • 间接实现计划任务:得益于异步任务的唤醒机制,未来可以实现如“日程提醒”或“定时消息”等功能,即系统可以在特定时间点主动与用户发起交互
  • 主动式消息推送:当后台任务完成后,系统可以主动通知用户,提升了交互的主动性和实用性

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions