# Agent Team — Product Requirements Document **Date**: 2026-03-04 **Status**: Draft --- ## 1. Overview Agent Team 是一个本地部署的多 agent 协作平台。用户可以创建多个 AI agent,将它们组织成部门群,通过类似群聊的界面协作完成复杂任务。默认支持 DeepSeek,同时支持 Kimi、Ollama 等模型提供商。 用户可以从「人才市场」一键雇佣社区分享的团队模板,也可以将自己的团队(含经验、知识库、skills)打包发布到 GitHub 供他人使用。 --- ## 2. 核心概念 ### Agent 每个 agent 是一个目录,包含两个 MD 文件: ``` agents/ legal-director/ AGENT.md # 技术配置:provider、model、skills、description SOUL.md # system prompt:角色人格、行为准则 memory/ # agent 自动沉淀的经验知识 contracts.md cases.md ``` **AGENT.md 格式**: ```yaml --- name: legal-director description: 法律总监,负责合同审查、法律风险评估和诉讼策略 provider: deepseek # deepseek | kimi | ollama | openai(默认 deepseek) model: deepseek-chat # 对应 provider 的模型名 api_key_env: DEEPSEEK_API_KEY skills: - pdf-processing - web-search --- ``` **SOUL.md 格式**:纯 Markdown,即 system prompt 正文。 **memory/**:agent 每次完成任务后自动更新,下次执行时注入 context,实现经验积累。 ### Skill 遵循 [agentskills.io](https://agentskills.io) 开放标准: ``` skills/ pdf-processing/ SKILL.md # YAML frontmatter + 指令 scripts/ # 可执行脚本(可选) references/ # 参考文档(可选) ``` 技能三层渐进加载: 1. 启动时加载所有 skill 的 name + description(~100 tokens/skill) 2. agent 激活某 skill 时加载完整 SKILL.md 3. 按需加载 scripts/references 中的文件 ### 群(Room) 群是 agent 协作的场所,分两种类型: | 类型 | 成员构成 | 用途 | |------|---------|------| | 部门群 | 用户 + 1个master + N个子agent | 部门内任务协作 | | Leader 群 | 用户 + 多个部门master | 跨部门大项目协调 | 群数据全部以文件存储,无数据库: ``` rooms/ legal-dept/ room.md # 群配置(成员、类型) tasks.md # 当前 todolist history/ # 任务执行历史 2026-03-04-contract-review.md workspace/ # 群产出文件 合同分析报告.md ``` ### Master Agent 每个群有一个 master agent,职责: 1. 接收用户任务,理解意图 2. 感知群内所有成员的能力(系统自动注入成员 description) 3. 拆分任务,生成 tasks.md,分配给合适的子 agent 4. 检查子 agent 的输出,提出修改意见 5. 迭代直到满意,汇总结果给用户 ### 团队包(Team Package) 团队是可打包、可分享的完整单元: ``` legal-team/ team.md # 团队介绍、作者、标签、版本 agents/ legal-director/ AGENT.md SOUL.md memory/ # 沉淀的经验(可随团队分享) skills/ # 团队专属 skills contract-review/ SKILL.md knowledge/ # 知识库 law-references.md ``` --- ## 3. 功能需求 ### 3.1 Agent 管理 - 前端提供 MD 编辑器,直接编辑 `AGENT.md` 和 `SOUL.md` - 保存时后端写入对应目录(`agents//`) - 支持创建、编辑、删除 agent - 不使用传统表单,所有配置通过 MD 文件维护 ### 3.2 Skill 管理 - 前端展示已安装的 skills 列表(读取 `skills/` 目录) - 支持查看 skill 详情(SKILL.md 内容) - 支持上传/创建新 skill(创建目录 + SKILL.md) - Skills 全局共享,所有 agent 均可使用 ### 3.3 群管理 - 创建部门群:选择 master agent + 添加子 agent 成员 - 创建 Leader 群:选择多个部门 master agent - 群列表侧边栏实时显示每个群的状态: - `pending` — 空闲,等待用户输入 - `thinking` — Master 正在分析任务、制定计划 - `working · 正在...` — 子 agent 执行中(详细版) - 每个群独立的消息历史和工作空间 ### 3.4 群聊交互 - Discord 风格三栏布局(见第 5 节) - 用户发送消息 → master 接收并处理 - Master 在群内 @ 子 agent 分配任务 - 子 agent 回复执行结果(流式输出) - Master 检查结果,必要时要求修改(显示 review 状态) - 最终 master 汇总回复用户 - 消息区分角色:用户(右对齐蓝色)/ master(金色边框+王冠)/ 子agent(灰色+头像) ### 3.5 Context 管理 每个 agent 的 LLM 调用相互隔离,避免 token 爆炸: - Master context:用户消息 + 自己的消息 + 子 agent 结果摘要 - 子 agent context:master 分配的任务指令 + 自己的历史回复 - 超出 token 阈值时自动压缩旧消息为摘要 - 任务完成后经验写入 `memory/*.md`,替代历史记录 ### 3.6 LLM 支持 每个 agent 独立配置 provider + model,内置 provider 列表: | Provider | base_url | 默认模型 | |----------|----------|---------| | `deepseek`(默认) | `https://api.deepseek.com/v1` | `deepseek-chat` | | `kimi` | `https://api.moonshot.cn/v1` | `moonshot-v1-8k` | | `ollama` | `http://localhost:11434/v1` | `qwen2.5` | | `openai` | `https://api.openai.com/v1` | `gpt-4o` | 所有 provider 均通过 OpenAI 兼容接口调用,`provider` 字段自动映射 base_url,也可手动覆盖。 ### 3.7 人才市场 - 页面展示可雇佣的团队列表 - 支持输入 GitHub repo URL(`username/repo`)一键雇佣 - 雇佣流程:git clone → 解压 agents/ + skills/ 到本地 → 自动建群 - 发布流程:将本地团队目录推送到 GitHub,添加 topic `agent-team` - 社区团队通过 GitHub topic `agent-team` 聚合发现 --- ## 4. 前端设计 ### 整体布局(Discord 风格三栏) ``` ┌──────────┬──────────────────────────────┬────────────────────┐ │ │ 法律顾问部门 │ Members │ │ 群列表 │ ──────────────────────── │ 👑 法律总监 thinking│ │ │ │ ● 合同律师 working │ │ ● 法律部 │ Master: 我来拆分任务... │ ● 合规专员 pending │ │ working│ @合同律师 请起草合同 │ ──────────────────│ │ ○ 研究部 │ │ Tasks │ │ pending│ 合同律师: 正在起草... ▌ │ ☑ 分析合同风险 │ │ │ │ ○ 起草修改意见 │ │ ◈ Leader │ │ ──────────────────│ │ 群 │ │ 产物 │ │ │ │ 📄 合同分析.md │ │ │ │ 📄 风险报告.md │ │ │ │ │ │ │ ┌──────────────────────┐ │ [Skills][History] │ │ │ │ 输入消息... [发送] │ │ [Workspace] │ └──────────┴──────────────────────────────┴────────────────────┘ ``` ### 左侧群列表 - 群名 + 类型图标(部门群 / Leader 群) - 实时状态 badge ### 中间聊天区 - 流式消息气泡,角色样式区分 - Master 消息带王冠图标,金色边框 - 子 agent 消息带头像(名字首字母) ### 右侧面板 默认展示三个区块: - **Members** — 成员列表 + 实时状态 - **Tasks** — `tasks.md` 渲染的 todolist - **产物** — workspace 最新文件列表,可点击预览 底部三个按钮(点击弹出抽屉): - `Skills` — 群内可用 skills - `History` — 任务执行历史(MD 文件列表) - `Workspace` — 完整工作空间文件树 ### Agent / Skill 管理页 - 通过左侧导航切换到管理页 - MD 编辑器(Monaco Editor)直接编辑 AGENT.md / SOUL.md - Skill 列表 + 详情查看 --- ## 5. 技术架构 ### 后端(Go) ``` cmd/server/main.go internal/ agent/ # agent 配置加载、运行时、memory 管理 skill/ # skill 发现、metadata 解析、激活 room/ # 群管理、消息路由、orchestration llm/ # OpenAI 兼容客户端封装(provider 映射) hub/ # 人才市场:GitHub clone、团队安装 api/ # HTTP handlers + WebSocket ``` 关键依赖: - `github.com/sashabaranov/go-openai` — LLM 调用 - `github.com/labstack/echo` — HTTP 框架 - `gopkg.in/yaml.v3` — YAML frontmatter 解析 ### 前端(React + TypeScript) ``` web/src/ components/ Chat/ # 群聊界面(三栏布局) Editor/ # Monaco MD 编辑器 RoomPanel/ # 右侧面板(Members/Tasks/产物) Market/ # 人才市场页面 stores/ # Zustand 状态管理 ``` 关键依赖: - React + TypeScript - shadcn/ui — UI 组件 - Zustand — 状态管理 - Monaco Editor — MD 编辑器 - WebSocket — 实时消息 ### 通信协议(WebSocket) ```json { "type": "user_message", "room_id": "legal-dept", "content": "..." } { "type": "agent_message", "agent": "legal-director", "role": "master", "content": "...", "streaming": true } { "type": "task_assign", "from": "legal-director", "to": "contract-lawyer", "task": "..." } { "type": "review", "from": "legal-director", "target": "contract-lawyer", "feedback": "..." } { "type": "room_status", "room_id": "legal-dept", "status": "working", "agent": "合同律师", "action": "正在起草合同" } { "type": "tasks_update", "room_id": "legal-dept", "content": "# Tasks\n- [x] ..." } { "type": "workspace_file","room_id": "legal-dept", "filename": "合同分析.md", "content": "..." } ``` ### 存储(纯文件系统,无数据库) ``` agent-team/ ├── agents/ # agent 配置 ├── skills/ # 全局 skills ├── rooms/ # 群数据 ├── teams/ # 本地团队模板缓存 ├── cmd/server/ ├── internal/ ├── web/ └── go.mod ``` --- ## 6. Master Orchestration 流程 ``` 用户消息 ↓ Master 收到(context 注入:群成员能力 + memory) ↓ Master 分析任务,更新 tasks.md,生成执行计划 ↓ Master @ 子agent 分配子任务(并行或串行) ↓ 子 agent 执行(context:任务指令 + 自身 memory) ↓ Master review 结果 ├── 不满意 → 提出 feedback,要求修改 → 回到上一步 └── 满意 → 汇总结果,写入 workspace,更新 memory,回复用户 ``` Master context 注入格式: ```xml contract-lawyer 合同律师,专注合同起草、审查和风险识别 ``` --- ## 7. MVP 范围 **包含**: - Agent 创建/编辑(Monaco MD 编辑器,无表单) - Skill 展示和加载(agentskills.io 标准) - 部门群 + Leader 群 - 群实时状态(pending / thinking / working · agent名) - Discord 风格三栏群聊界面(流式消息) - 右侧面板:Members + Tasks + 产物 + 抽屉按钮 - Master orchestration(分配 + review 迭代) - Context 隔离 + token 压缩 - Agent memory 自动沉淀 - DeepSeek(默认)+ Kimi + Ollama + OpenAI - 人才市场:GitHub 一键雇佣团队 - 团队打包发布(推送 GitHub + topic) **不包含(后续迭代)**: - Skill 脚本执行沙箱 - 用户认证 - 消息搜索