scorpio de773586c7 feat: implement full agent-team platform
Go backend:
- LLM client with DeepSeek/Kimi/Ollama/OpenAI support (OpenAI-compat)
- Agent loader: AGENT.md frontmatter, SOUL.md, memory read/write
- Skill system following agentskills.io standard
- Room orchestration: master assign→execute→review loop with streaming
- Hub: GitHub repo clone and team package install
- Echo HTTP server with WebSocket and full REST API

React frontend:
- Discord-style 3-panel layout with Tailwind v4
- Zustand store with WebSocket streaming message handling
- Chat view: streaming messages, role styles, right panel, drawer buttons
- Agent MD editor with Monaco Editor (AGENT.md + SOUL.md)
- Market page for GitHub team install/publish

Docs:
- plan.md with full progress tracking and next steps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 21:57:46 +08:00

5.4 KiB
Raw Blame History

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 循环分配→执行→review→迭代WebSocket 事件广播
  • internal/hub/hub.go — GitHub repo clone团队包安装agents/ + skills/
  • internal/api/server.go — Echo HTTP 服务WebSocket hub全部 REST 接口
  • cmd/server/main.go — 入口,读取环境变量启动

React 前端

  • Vite + React + TypeScript 项目初始化(web/
  • Tailwind CSS v4 + @tailwindcss/vite 配置
  • web/src/types.ts — 所有类型定义
  • web/src/store.ts — Zustand storeWebSocket 连接,消息流式拼接
  • web/src/App.tsx — 三栏布局骨架,左侧导航(群聊/Agents/市场)
  • web/src/components/RoomSidebar.tsx — 群列表,实时状态 badge创建群表单
  • web/src/components/ChatView.tsx — 消息流角色样式右侧面板Members/Tasks/产物),抽屉按钮
  • web/src/components/AgentsPage.tsx — Monaco MD 编辑器AGENT.md/SOUL.md 编辑,创建/删除 agent
  • web/src/components/MarketPage.tsx — GitHub 一键雇佣,发布说明

配置文件

  • agents/example-master/AGENT.md + SOUL.md — 示例 master agent
  • skills/example/SKILL.md — 示例 skill
  • docs/plans/PRD.md — 完整产品需求文档
  • README.md

待完成

紧急(下次开始先做)

  • 提交代码到 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 只支持单 masterLeader 群需要广播给多个 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

关键设计决策(供参考)

  1. 一切皆 MD — agent 配置、soul、memory、tasks、history 全部是 MD 文件,无数据库
  2. Context 隔离 — 每个 agent 的 LLM 调用独立master 只看摘要,子 agent 只看自己的任务
  3. agentskills.io 标准 — skill 格式遵循开放标准,可复用社区 skill
  4. OpenAI 兼容接口 — 所有 provider 统一用 go-openai只改 BaseURL
  5. 去中心化 Hub — 团队包就是 GitHub repotopic agent-team 聚合发现

用户问题备忘

"导演 agent 会不会忘记之前的内容?"

:不会忘,通过两个机制保证:

  1. 任务内 context:整个 orchestration 循环分配→执行→review是同一个 masterMsgs 数组,导演始终看到完整对话
  2. 跨任务 memory:任务完成后经验写入 agents/director/memory/,下次任务时注入 system prompt

导演的 identitySOUL.md永远不变memory 会随经验积累越来越丰富。