Skip to content

多代理系统

模块概述

版本: v0.34.0 状态: ✅ 已实现 IPC处理器: 16个 最后更新: 2026-02-15

多代理系统提供 8 种专业 AI 代理模板,支持任务自动分解、代理分配和结果聚合。基于 Cowork 多代理协作框架构建,通过 AgentCoordinator 实现智能任务编排。

核心特性

  • 8种专业代理: CodeSecurity, DevOps, DataAnalysis, Documentation, TestGenerator, Architect, Performance, Compliance
  • 任务自动分解: 基于 LLM 的智能任务拆分和代理匹配
  • 代理编排: 串行/并行/管道任务执行模式
  • 模板管理: 代理模板 CRUD,支持自定义代理
  • 5个内置技能: 每个代理携带专业技能集
  • 任务历史: 完整的任务执行记录和分析

1. 架构设计

1.1 整体架构图

┌──────────────────────────────────────────────────────────────────┐
│                        前端 (Vue3)                                │
├──────────────────────────────────────────────────────────────────┤
│  AgentDashboardPage  │  AgentTemplateEditor  │  TaskHistory      │
│        ↓                       ↓                    ↓             │
│                     Pinia Store: agents.ts                        │
└──────────────────────────────────────────────────────────────────┘
                              ↕ IPC (16个通道)
┌──────────────────────────────────────────────────────────────────┐
│                        主进程 (Electron)                          │
├──────────────────────────────────────────────────────────────────┤
│                      agents-ipc.js (16个处理器)                   │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ AgentTemplateManager │ AgentCoordinator │ AgentRegistry     │  │
│  └────────────────────────────────────────────────────────────┘  │
│                              ↓                                    │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ AgentCapabilities │ SkillLoader │ CoworkEngine │ Database  │  │
│  └────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────┘

1.2 代理执行流程

用户输入任务

AgentCoordinator.decompose(task)  ← LLM分析任务

生成子任务列表 + 代理匹配

AgentRegistry.createAgents(templates)

执行模式选择 (串行/并行/管道)

各代理独立执行子任务

AgentCoordinator.aggregate(results)  ← 结果聚合

返回最终结果

1.3 核心组件

组件文件行数说明
AgentTemplateManageragent-template-manager.js~400代理模板CRUD
AgentCoordinatoragent-coordinator.js~450任务分解、分配、聚合
AgentRegistryagent-registry.js~300代理注册、工厂、版本
AgentCapabilitiesagent-capabilities.js~350能力定义和工具集
AgentsIPCagents-ipc.js~28016个IPC处理器

2. 核心模块

2.1 AgentTemplateManager

代理模板管理器,负责 8 种内置模板和自定义模板的生命周期管理。

8种内置代理模板:

#模板名称专长典型任务
1CodeSecurity代码安全审计漏洞扫描、依赖检查、安全最佳实践
2DevOpsCI/CD和运维部署配置、容器编排、监控告警
3DataAnalysis数据分析数据清洗、统计分析、可视化建议
4Documentation文档生成API文档、用户指南、变更日志
5TestGenerator测试生成单元测试、集成测试、E2E测试
6Architect架构设计系统设计、模块拆分、技术选型
7Performance性能优化性能分析、瓶颈定位、优化建议
8Compliance合规检查许可证检查、代码规范、安全合规

核心方法:

javascript
class AgentTemplateManager {
  // 获取所有模板
  async getTemplates(filters) { }

  // 获取模板详情
  async getTemplate(templateId) { }

  // 创建自定义模板
  async createTemplate(data) { }

  // 更新模板
  async updateTemplate(templateId, updates) { }

  // 删除模板 (仅自定义)
  async deleteTemplate(templateId) { }

  // 复制模板
  async cloneTemplate(templateId, newName) { }

  // 导出模板
  async exportTemplate(templateId) { }

  // 导入模板
  async importTemplate(templateData) { }
}

模板定义格式:

javascript
{
  id: 'code-security',
  name: 'CodeSecurity',
  displayName: '代码安全审计代理',
  description: '专注于代码安全审计和漏洞检测',
  version: '1.0.0',
  builtin: true,
  systemPrompt: '你是一个专业的代码安全审计专家...',
  capabilities: ['code_analysis', 'vulnerability_scan', 'dependency_check'],
  tools: ['grep', 'read_file', 'search_code'],
  skills: ['security-audit'],
  config: {
    maxTokens: 4096,
    temperature: 0.3,
    model: 'default'
  }
}

2.2 AgentCapabilities

代理能力定义系统,将能力映射到具体的工具集和技能。

能力分类:

能力描述关联工具
code_analysis代码分析grep, read_file, search_code
vulnerability_scan漏洞扫描grep, read_file, npm_audit
dependency_check依赖检查read_file, package_analysis
test_generation测试生成read_file, write_file, grep
doc_generation文档生成read_file, write_file, template_render
performance_profiling性能分析read_file, metrics_collect
architecture_review架构评审read_file, search_code, diagram_generate
ci_cd_configCI/CD配置read_file, write_file, yaml_validate

核心方法:

javascript
class AgentCapabilities {
  // 获取能力定义
  getCapability(capabilityId) { }

  // 根据能力获取工具集
  getToolsForCapabilities(capabilityIds) { }

  // 能力匹配评分
  matchScore(taskDescription, capabilityIds) { }

  // 注册自定义能力
  registerCapability(definition) { }
}

2.3 AgentCoordinator

任务编排协调器,负责将复杂任务分解为子任务并分配给合适的代理。

执行模式:

串行模式 (Sequential):
  Task1 → Agent A → Task2 → Agent B → Task3 → Agent C → 最终结果

并行模式 (Parallel):
  Task1 → Agent A ─┐
  Task2 → Agent B ─┤→ 聚合 → 最终结果
  Task3 → Agent C ─┘

管道模式 (Pipeline):
  Input → Agent A → 中间结果 → Agent B → 中间结果 → Agent C → 最终结果

核心方法:

javascript
class AgentCoordinator {
  // 分解任务
  async decompose(task) { }

  // 匹配最佳代理
  async matchAgents(subtasks) { }

  // 执行编排
  async orchestrate(task, options = {}) { }

  // 聚合结果
  async aggregate(results) { }

  // 获取任务状态
  async getTaskStatus(taskId) { }

  // 取消任务
  async cancelTask(taskId) { }

  // 获取执行历史
  async getHistory(filters) { }
}

任务分解示例:

javascript
// 输入: "对这个项目进行全面的代码审查"
const subtasks = await coordinator.decompose(task);
// 输出:
// [
//   { type: 'security_audit', agent: 'CodeSecurity', priority: 1 },
//   { type: 'test_coverage', agent: 'TestGenerator', priority: 2 },
//   { type: 'performance_review', agent: 'Performance', priority: 2 },
//   { type: 'doc_completeness', agent: 'Documentation', priority: 3 },
//   { type: 'architecture_review', agent: 'Architect', priority: 1 }
// ]

2.4 AgentRegistry

代理注册表,管理代理类型注册、实例创建和版本控制。

核心方法:

javascript
class AgentRegistry {
  // 注册代理类型
  register(agentType, factory) { }

  // 创建代理实例
  create(agentType, config) { }

  // 获取已注册类型
  getRegisteredTypes() { }

  // 注销代理类型
  unregister(agentType) { }

  // 获取代理版本
  getVersion(agentType) { }
}

3. 内置技能 (5个)

#技能名称关联代理功能
1security-auditCodeSecurity安全漏洞扫描、OWASP检查清单
2generate-testsTestGenerator自动生成单元测试和集成测试
3architecture-diagramArchitect生成架构图 (Mermaid/PlantUML)
4performance-reportPerformance性能分析报告生成
5compliance-checkCompliance许可证和合规性检查

4. 数据模型

4.1 agent_templates

字段类型说明
idTEXT PK模板ID
nameTEXT UNIQUE模板名称
display_nameTEXT显示名称
descriptionTEXT描述
versionTEXT版本号
builtinBOOLEAN是否内置
system_promptTEXT系统提示词
capabilitiesTEXT(JSON)能力列表
toolsTEXT(JSON)工具列表
skillsTEXT(JSON)技能列表
configTEXT(JSON)配置 (maxTokens/temperature/model)
created_atINTEGER创建时间
updated_atINTEGER更新时间

4.2 agent_task_history

字段类型说明
idTEXT PK任务ID (UUID)
task_descriptionTEXT任务描述
execution_modeTEXT执行模式 (sequential/parallel/pipeline)
subtasksTEXT(JSON)子任务列表
agents_usedTEXT(JSON)使用的代理列表
statusTEXT状态 (pending/running/completed/failed/cancelled)
resultTEXT(JSON)最终结果
total_tokensINTEGER总Token消耗
duration_msINTEGER执行时长(毫秒)
created_atINTEGER创建时间
completed_atINTEGER完成时间

5. IPC接口 (16个)

5.1 模板管理 (7个)

通道说明参数
agent:get-templates获取模板列表filters:
agent:get-template获取模板详情templateId: string
agent:create-template创建自定义模板data: AgentTemplate
agent:update-template更新模板templateId: string, updates: object
agent:delete-template删除模板templateId: string
agent:clone-template复制模板templateId: string, newName: string
agent:export-template导出模板templateId: string

5.2 任务编排 (5个)

通道说明参数
agent:orchestrate执行任务编排task: string, options:
agent:decompose分解任务task: string
agent:get-task-status获取任务状态taskId: string
agent:cancel-task取消任务taskId: string
agent:aggregate-results手动聚合结果taskId: string

5.3 历史和注册 (4个)

通道说明参数
agent:get-history获取任务历史filters:
agent:get-history-detail获取历史详情taskId: string
agent:get-registered-types获取已注册类型-
agent:import-template导入模板templateData: object

6. 前端页面

6.1 AgentDashboardPage.vue

代理管理仪表板:

  • 8种代理卡片展示: 名称、描述、能力标签、状态
  • 快速任务提交输入框
  • 执行模式选择 (串行/并行/管道)
  • 实时任务进度显示
  • 任务历史记录列表
  • 代理使用统计图表 (ECharts)

6.2 AgentTemplateEditorPage.vue

代理模板编辑器:

  • 模板基本信息表单 (名称/描述/版本)
  • 系统提示词编辑器 (Markdown 支持)
  • 能力选择器 (多选标签)
  • 工具配置面板
  • 技能关联选择
  • 模型参数调节 (temperature/maxTokens 滑块)
  • 预览和测试按钮

6.3 Pinia Store: agents.ts

typescript
interface AgentsState {
  templates: AgentTemplate[];
  currentTemplate: AgentTemplate | null;
  runningTasks: TaskInfo[];
  taskHistory: TaskHistoryItem[];
  registeredTypes: string[];
  loading: boolean;
}

interface AgentTemplate {
  id: string;
  name: string;
  displayName: string;
  description: string;
  version: string;
  builtin: boolean;
  systemPrompt: string;
  capabilities: string[];
  tools: string[];
  skills: string[];
  config: AgentConfig;
}

7. 安全设计

7.1 代理权限控制

  • 每个代理只能访问其能力声明中的工具
  • 文件系统访问通过 FileSandbox 限制在工作区范围
  • 敏感操作 (如文件写入) 需要用户确认

7.2 任务执行安全

  • 任务执行超时保护 (默认 5 分钟)
  • Token 消耗上限控制
  • 并行任务并发数限制 (默认最多 3 个)
  • 异常代理自动隔离

7.3 模板安全

  • 内置模板不可删除或修改
  • 自定义模板的 systemPrompt 进行注入检查
  • 导入模板时验证格式和权限声明

8. 与 Cowork 系统集成

多代理系统构建在 Cowork 多代理协作框架之上:

  • TeammateTool: 代理间通过 TeammateTool 协作通信
  • FileSandbox: 共享 FileSandbox 文件访问控制
  • 长时任务: 通过 Cowork 的 checkpoint/recovery 机制支持长时任务
  • Skills: 复用 Cowork 的 Skills 框架加载代理技能

9. 文件结构

desktop-app-vue/src/main/agents/
├── agent-template-manager.js   # 代理模板CRUD
├── agent-coordinator.js        # 任务分解、分配、聚合
├── agent-registry.js           # 代理注册、工厂、版本
├── agent-capabilities.js       # 能力定义和工具集
├── agents-ipc.js               # 16个IPC处理器
└── skills/                     # 内置代理技能
    ├── security-audit.md
    ├── generate-tests.md
    ├── architecture-diagram.md
    ├── performance-report.md
    └── compliance-check.md

desktop-app-vue/src/renderer/
├── pages/agents/
│   ├── AgentDashboardPage.vue      # 代理仪表板
│   └── AgentTemplateEditorPage.vue # 模板编辑器
└── stores/agents.ts                # 代理状态管理

10. 相关文档


文档版本: 1.0 最后更新: 2026-02-15

ChainlessChain 系统设计文档 — 面向开发者