init: add README and PRD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
21a7cf0b4e
78
README.md
Normal file
78
README.md
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# Agent Team
|
||||||
|
|
||||||
|
本地部署的多 agent 协作平台。创建 AI agent 团队,通过群聊界面协作完成复杂任务。
|
||||||
|
|
||||||
|
## 特性
|
||||||
|
|
||||||
|
- **多 agent 群聊** — Discord 风格界面,master agent 自动拆分任务、分配、review
|
||||||
|
- **MD 配置** — 所有配置通过 Markdown 文件维护,无表单
|
||||||
|
- **Agent Memory** — agent 自动沉淀经验到 `memory/*.md`,持续成长
|
||||||
|
- **Skills 支持** — 遵循 [agentskills.io](https://agentskills.io) 开放标准
|
||||||
|
- **人才市场** — 从 GitHub 一键雇佣社区团队,或发布自己的团队
|
||||||
|
- **多模型支持** — DeepSeek(默认)、Kimi、Ollama、OpenAI
|
||||||
|
|
||||||
|
## 群类型
|
||||||
|
|
||||||
|
| 类型 | 成员 | 用途 |
|
||||||
|
|------|------|------|
|
||||||
|
| 部门群 | 用户 + master + 子agents | 部门内协作 |
|
||||||
|
| Leader 群 | 用户 + 多个部门master | 跨部门大项目 |
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
agent-team/
|
||||||
|
├── agents/ # agent 配置
|
||||||
|
│ └── my-agent/
|
||||||
|
│ ├── AGENT.md # provider、model、skills
|
||||||
|
│ ├── SOUL.md # system prompt
|
||||||
|
│ └── memory/ # 自动沉淀的经验
|
||||||
|
├── skills/ # 全局 skills(agentskills.io 标准)
|
||||||
|
├── rooms/ # 群数据(消息历史、tasks、workspace)
|
||||||
|
├── cmd/server/ # Go 后端
|
||||||
|
├── internal/ # 核心逻辑
|
||||||
|
└── web/ # React 前端
|
||||||
|
```
|
||||||
|
|
||||||
|
## AGENT.md 格式
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: legal-director
|
||||||
|
description: 法律总监,负责合同审查和法律风险评估
|
||||||
|
provider: deepseek # deepseek | kimi | ollama | openai
|
||||||
|
model: deepseek-chat
|
||||||
|
api_key_env: DEEPSEEK_API_KEY
|
||||||
|
skills:
|
||||||
|
- pdf-processing
|
||||||
|
---
|
||||||
|
你是一位经验丰富的法律总监...(SOUL.md 内容)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 后端
|
||||||
|
go run cmd/server/main.go
|
||||||
|
|
||||||
|
# 前端
|
||||||
|
cd web && npm install && npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## 人才市场
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 雇佣社区团队(输入 GitHub repo)
|
||||||
|
username/legal-team
|
||||||
|
|
||||||
|
# 发布自己的团队
|
||||||
|
git push origin main
|
||||||
|
# 添加 GitHub topic: agent-team
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- 后端:Go + Echo
|
||||||
|
- 前端:React + TypeScript + shadcn/ui
|
||||||
|
- LLM:OpenAI 兼容接口(DeepSeek / Kimi / Ollama)
|
||||||
|
- 存储:纯文件系统(无数据库)
|
||||||
336
docs/plans/PRD.md
Normal file
336
docs/plans/PRD.md
Normal file
@ -0,0 +1,336 @@
|
|||||||
|
# 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/<name>/`)
|
||||||
|
- 支持创建、编辑、删除 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名> 正在...` — 子 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
|
||||||
|
<team_members>
|
||||||
|
<member>
|
||||||
|
<name>contract-lawyer</name>
|
||||||
|
<description>合同律师,专注合同起草、审查和风险识别</description>
|
||||||
|
</member>
|
||||||
|
</team_members>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 脚本执行沙箱
|
||||||
|
- 用户认证
|
||||||
|
- 消息搜索
|
||||||
Loading…
x
Reference in New Issue
Block a user