- Exclude binary, rooms/, agent memory, web/dist from git - plan.md reflects current completed state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.1 KiB
5.1 KiB
Agent Team — 开发进度
最后更新: 2026-03-04 仓库: https://gitea.catter.cn/sdaduanbilei/agent-team.git
已完成
Go 后端
go.mod初始化,依赖已锁定(Go 1.20 兼容版本)internal/llm/client.go— OpenAI 兼容客户端,支持 DeepSeek/Kimi/Ollama/OpenAI,流式输出internal/agent/agent.go— AGENT.md frontmatter 解析,SOUL.md 加载,memory 读写,system prompt 构建internal/skill/skill.go— agentskills.io 标准,skill 发现/加载/XML 生成internal/room/room.go— 群配置加载,master orchestration 循环,消息历史持久化,memory 自动更新internal/hub/hub.go— GitHub repo clone,团队包安装internal/api/server.go— Echo HTTP 服务,WebSocket hub,全部 REST 接口(含 skill 创建、workspace 文件预览、消息历史)cmd/server/main.go— 入口
React 前端
- Vite + React + TypeScript + Tailwind v4
web/src/types.ts+store.ts— 类型定义,Zustand store,WebSocket 流式消息App.tsx— 四栏导航(群聊/Agents/Skills/市场)RoomSidebar.tsx— 群列表,实时状态,创建群(agent 下拉多选)ChatView.tsx— 消息流,右侧面板,workspace 文件预览 ModalAgentsPage.tsx— Monaco MD 编辑器,AGENT.md/SOUL.md 编辑SkillsPage.tsx— skill 列表,详情查看,新建 skillMarketPage.tsx— GitHub 一键雇佣,发布说明
构建验证
go build ./...通过npm run build通过(386KB JS bundle)
待完成
紧急(下次开始先做)
-
提交代码到 git — 所有代码已写好但还未 commit/push
git add -A git commit -m "feat: implement full agent-team platform" git push -
前端构建验证 — 确认 Tailwind v4 + Monaco Editor 能正常编译
cd web && npm run build -
后端编译验证 — 已通过
go build ./...,但需要实际运行测试DEEPSEEK_API_KEY=xxx go run cmd/server/main.go
功能补全
-
SkillsPage 组件 — skills 列表页面(查看/创建 skill),目前 store 有
fetchSkills但没有对应页面- 在
web/src/components/SkillsPage.tsx新建 - App.tsx 加入 skills 导航入口
- 在
-
Agent memory 自动更新 — 任务完成后 master 自动总结经验写入
agents/<name>/memory/- 在
internal/room/room.go的 orchestration 循环末尾调用agent.SaveMemory() - 需要让 master 生成一段经验总结
- 在
-
消息历史持久化 — 目前消息只在内存,刷新页面丢失
- 每条消息追加写入
rooms/<id>/history/YYYY-MM-DD.md - 前端启动时通过 REST 接口加载历史
- 每条消息追加写入
-
右侧面板 Skills tab — 点击 Skills 抽屉按钮时展示群内可用 skills
- 调用
GET /api/skills获取列表
- 调用
-
Workspace 文件预览 — 点击产物文件名时展示 MD 内容
- 新增
GET /api/rooms/:id/workspace/:filename接口 - 前端弹出 Modal 展示 ReactMarkdown 渲染
- 新增
-
创建群时成员选择优化 — 目前是手动输入 agent 名,改为下拉多选
- 调用
GET /api/agents获取列表,渲染 checkbox
- 调用
-
Leader 群的 orchestration — 目前 room.go 的 Handle 只支持单 master,Leader 群需要广播给多个 master
- Leader 群:用户消息广播给所有 master,每个 master 在自己的部门群里处理
-
环境变量配置页 — 前端提供一个设置页,配置各 provider 的 API Key
- 写入本地
.env文件或通过PUT /api/config接口
- 写入本地
已知问题
web/src/App.css可以删除(Vite 默认生成,已不需要)web/src/assets/react.svg可以删除web/public/vite.svg可以删除main.tsx里的import './App.css'需要删除
环境要求
| 工具 | 版本 |
|---|---|
| Go | 1.20+ |
| Node.js | 18+ |
| git | 任意 |
启动方式
# 后端
export DEEPSEEK_API_KEY=your_key
go run cmd/server/main.go
# 前端(另一个终端)
cd web
npm install
npm run dev
# 访问 http://localhost:5173
关键设计决策(供参考)
- 一切皆 MD — agent 配置、soul、memory、tasks、history 全部是 MD 文件,无数据库
- Context 隔离 — 每个 agent 的 LLM 调用独立,master 只看摘要,子 agent 只看自己的任务
- agentskills.io 标准 — skill 格式遵循开放标准,可复用社区 skill
- OpenAI 兼容接口 — 所有 provider 统一用 go-openai,只改 BaseURL
- 去中心化 Hub — 团队包就是 GitHub repo,topic
agent-team聚合发现
用户问题备忘
"导演 agent 会不会忘记之前的内容?"
答:不会忘,通过两个机制保证:
- 任务内 context:整个 orchestration 循环(分配→执行→review)是同一个
masterMsgs数组,导演始终看到完整对话 - 跨任务 memory:任务完成后经验写入
agents/director/memory/,下次任务时注入 system prompt
导演的 identity(SOUL.md)永远不变,memory 会随经验积累越来越丰富。