agent-registry-design.md 13.5 KB

Agent Registry Web UI — 产品设计方案

1. 现状诊断

1.1 后端能力覆盖度

后端 API 能力 Web UI 状态
GET /agents 全量 Agent 列表(含四维信息) ❌ 无页面
GET /agents/:name 单个 Agent 详情 ❌ 无页面
GET /agents/:name/health 健康检查 ❌ 无页面
POST /agents 动态注册 Agent ❌ 无页面
DELETE /agents/:name 注销动态 Agent ❌ 无页面
GET /agents/config 完整配置(agents + launchers + backends) ❌ 无页面
GET /agents/sessions 会话池状态 ❌ 无页面
GET /agents/groups Agent 组列表 ✅ NewTask 选择器
GET /agents/groups/:id 组详情(含四维信息 + availableBackends) ✅ 配置弹窗

结论:10 个 API 只有 2 个在 UI 中有体现,且都藏在"新建任务"流程里。

1.2 核心问题

  1. 没有独立的 Agent 管理入口:用户必须从"新建任务 → 配置弹窗"才能看到 Agent 信息
  2. 四维正交架构不可见:用户看不到 Agent 由哪四个维度组成
  3. 无全局视图:用户不知道系统里有多少 Agent、多少 Backend、多少 Group
  4. 无运行状态:Agent 健康状态、会话池、动态注册全不可见
  5. NewTask 页面职责混乱:既是任务创建页,又兼任 Agent 配置入口

2. 信息层级分析 (Benchmark-First)

L1 核心主体:Agent 全景视图

用户第一眼需要知道:我有多少 Agent,它们分别是什么角色,健康状态如何?

L2 参照系:四维架构

每个 Agent 由四个正交维度定义(身份 / 协议 / 传输 / 生命周期),用户需要看到这个结构。

L3 数据点:具体配置

每个 Agent 的具体配置值:cliBackend: claude-cli、launcher: kimi-local 等。

L4 补充信息:Prompt 内容、会话状态

展开查看的详细内容,默认折叠。


3. 页面架构

3.1 路由变更

/              → TaskList(任务列表 — 保持不变)
/new           → NewTask(新建任务 — 精简,配置入口指向 /agents)
/task/:id      → TaskDetail(任务详情 — 保持不变)
/agents        → AgentRegistry(新增 — Agent 注册中心)★
/claude-chat   → ClaudeChat(保持不变)

3.2 AgentRegistry 页面设计

┌────────────────────────────────────────────────────────────────────┐
│  Agent Registry                                                    │
│                                                                    │
│  ┌── 统计概览 ─────────────────────────────────────────────────┐  │
│  │  🤖 20 Agents  ·  📦 4 Backends  ·  👥 3 Groups  ·  💚 All │  │
│  └─────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  ┌── Tab 切换 ─────────────────────────────────────────────────┐  │
│  │  [按组查看]  [按类型查看]  [执行后端]                        │  │
│  └─────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  === Tab 1: 按组查看 ==========================================   │
│                                                                    │
│  ┌── 软件开发 (development) ── 默认 ──────────────────────────┐  │
│  │  ┌── master ──────────────────────────────────────────────┐ │  │
│  │  │ [master] 通用任务调度者  [acp · pipe · kimi-local]     │ │  │
│  │  └────────────────────────────────────────────────────────┘ │  │
│  │  ┌── coder ───────────────────────────────────────────────┐ │  │
│  │  │ [executor] 编写代码      [acp · pipe · kimi-local]     │ │  │
│  │  └────────────────────────────────────────────────────────┘ │  │
│  │  ┌── verifier ────────────────────────────────────────────┐ │  │
│  │  │ [validator] 验证代码正确性 [acp · pipe · kimi-local]   │ │  │
│  │  └────────────────────────────────────────────────────────┘ │  │
│  │  ┌── frontend-tester ─────────────────────────────────────┐ │  │
│  │  │ [validator] 前端浏览器测试 [acp · pipe · kimi-local]   │ │  │
│  │  └────────────────────────────────────────────────────────┘ │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  ┌── 小说创作 (novel-writing) ────────────────────────────────┐  │
│  │  ...                                                        │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  === Tab 2: 按类型查看 ========================================   │
│                                                                    │
│  ┌── executor (8) ────────────────────────────────────────────┐  │
│  │  coder · kimi-coder · claude-coder · gemini-coder          │  │
│  │  claude-engine-coder · gemini-engine-coder · ...           │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌── validator (3) ───────────────────────────────────────────┐  │
│  │  verifier · frontend-tester · editor                       │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌── master (1)────── orchestrator (2) ───────────────────────┐  │
│  │  ...                                                        │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  === Tab 3: 执行后端 ==========================================   │
│                                                                    │
│  ┌── CLI Backends ────────────────────────────────────────────┐  │
│  │  ┌─ claude-cli ─┐ ┌─ gemini-cli ─┐ ┌─ kimi-cli ──┐       │  │
│  │  │ command: claude │ command: gemini│ command: kimi │       │  │
│  │  │ 会话模式      │ │ 单次模式      │ │ 单次模式    │       │  │
│  │  │ 引用: 2 agents│ │ 引用: 2 agents│ │ 引用: 2     │       │  │
│  │  └───────────────┘ └───────────────┘ └─────────────┘       │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                    │
│  ┌── Launchers ───────────────────────────────────────────────┐  │
│  │  ┌─ kimi-local ─┐ ┌─ gemini-local ┐ ┌─ claude-local ─┐   │  │
│  │  │ process      │ │ process       │ │ process        │   │  │
│  │  │ cmd: kimi    │ │ cmd: gemini   │ │ cmd: claude    │   │  │
│  │  │ 引用: 8      │ │ 引用: 2       │ │ 引用: 2        │   │  │
│  │  └──────────────┘ └───────────────┘ └────────────────┘   │  │
│  └────────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────────┘

3.3 NewTask 页面精简

配置弹窗移除,改为:

  • Agent 组选择卡片保留
  • 选择卡片上增加"当前执行后端"标签(一目了然)
  • "配置"按钮跳转到 /agents 页面(而非弹窗)

3.4 信噪比决策

信息 决策 理由
Agent 名称 + 类型 ✅ 保留并强化 L1 核心
四维标签 ✅ 保留 L2 参照
Description ✅ 保留 L3 数据
Prompt 内容 ⬇️ 降级(展开查看) L4 补充
会话池状态 ⬇️ 降级(统计卡片) L4 补充
动态注册 ⬇️ 降级(高级功能) 低频操作
旧 CLI 列表 ❌ 砍掉 已被 backends 取代

4. 组件规划

4.1 新建组件

组件 文件 职责
AgentRegistry.vue views/AgentRegistry.vue Agent 注册中心页面(路由入口)
AgentTable.vue components/agent/AgentTable.vue Agent 表格视图(按组/按类型)
BackendPanel.vue components/agent/BackendPanel.vue 执行后端面板
AgentCard.vue components/agent/AgentCard.vue 从 task/ 移入,通用 Agent 卡片

4.2 现有组件变更

组件 变更
NewTask.vue 移除配置弹窗,改为跳转链接
AgentConfigModal.vue 删除(功能并入 AgentRegistry 页面)
AgentGroupSelector.vue 增加当前执行后端提示

4.3 API 层变更

函数 变更
getAgents() 已存在,需增加四维字段消费
getAgentConfig() 新增 — 调用 GET /agents/config
getAgentHealth(name) 新增 — 调用 GET /agents/:name/health
getSessionStats() 新增 — 调用 GET /agents/sessions

5. 不做的事情

  1. 不做 Agent 配置编辑/保存(agents.json 由系统管理,UI 只读)
  2. 不做 动态注册 UI(低频操作,命令行足够)
  3. 不做 Prompt 在线编辑(文件系统管理更合适)