Wudao 是一个本地个人 AI 工作站,目标是能够集成各类先进 AI 工具打造独属于个人的 AI Studio,努力成为 AI 时代 All In One 入口。
- 任务中心:创建、筛选、排序、优先级、截止时间、完成归档与统计摘要。
- SDK Chat:基于 Claude Agent SDK 或 Codex SDK 创建任务级对话,通过 SSE 实时推送并持久化到 SQLite。
- SDK Runner:在任务 workspace 中执行编码任务,支持事件回放、权限审批、取消和历史记录。
- 任务工作台:在同一界面内管理聊天、待发送队列、引用文件和 Runner 状态。
- Provider 管理:维护 Provider、模型列表、默认模型、鉴权方式、Runner 类型、排序和用量查询。
- 本地记忆:维护用户记忆、Agent 全局记忆、通用记忆和任务总结。
- 技能中心:扫描本地 Skill 目录,在聊天中选择并附加技能。
- 每日工作台:收集计划、任务活动、Git 提交、Claude Code 会话、知识活动和日终回顾。
- 看板能力:查看模型调用审计、Token 消耗、Wudao 使用时长、任务和项目编排状态。
- 自进化流程:为 Wudao 自身创建改进任务,在独立 git worktree 中执行,并只通过显式操作合并。
flowchart TD
A[Browser\nReact / Vite] -->|HTTP + SSE| B[FastAPI Backend\nPython]
B --> C[SQLite\nproviders / tasks / sdk runs / events]
B --> D[Task Workspaces\nWUDAO_HOME/workspace/<taskId>]
B --> E[SDK Runner\nClaude Agent SDK / Codex SDK]
B --> F[Skills\nlocal skill directories]
B --> G[Profile Memory\nWUDAO_HOME/profile/*.md]
B --> H[Daily Notes\nWUDAO_HOME/daily/*.md]
B --> I[Knowledge Base\nWUDAO_HOME/knowledge-base]
Wudao 是一个 pnpm monorepo:
packages/web:Vite、React 19、TypeScript、Tailwind CSS v4、HeroUI、zustand、i18next。packages/server:FastAPI、sqlite3、SSE、httpx、claude-agent-sdk、openai-codex。scripts:开发启动、Python 环境同步、任务记录检查和数据恢复等可重复脚本。
- Node.js 22+
- pnpm 10+
- curl,仅在
pnpm install需要自动安装项目本地uv时使用 - Python 3.12+,默认通过
uv管理
pnpm install 会优先复用系统已有 uv。如果系统没有 uv,会自动安装项目本地版本到 workspace/tools/uv。
pnpm install
pnpm dev默认本地地址:
- Web:
http://localhost:5173 - Server:
http://127.0.0.1:3000
pnpm dev 会通过 scripts/dev.sh 同时启动前端和后端。默认后端使用稳定 start 入口,不监听 Python 文件变更自动 reload。开发时如需后端 reload:
WUDAO_DEV_RELOAD=1 pnpm dev启动后进入设置页,至少配置一个 Provider。
Wudao 支持两类 Provider:
- API Key / Bearer Token Provider:在 UI 中配置 endpoint、model、鉴权方式和密钥。
- 官方运行时 Provider:复用本机 CLI 登录态,例如 Codex 或 Claude 官方运行时,不在 Wudao 中保存运行时 access token。
Provider 配置保存在本地 SQLite 中。密钥属于本地运行数据,不应提交到仓库。
pnpm dev
pnpm test
pnpm --filter web dev
pnpm --filter web build
pnpm --filter web test
pnpm --filter web test:watch
pnpm --filter web exec tsc --noEmit --noUnusedLocals --noUnusedParameters
pnpm --filter server dev
pnpm --filter server start
pnpm --filter server test
pnpm --filter server test:watch常用脚本:
./scripts/dev.sh
./scripts/inspect-task-chat.sh <task_id>
./scripts/recover-sdk-jsonl.sh --db ~/.wudao/wudao.dbWudao 默认把运行时数据放在仓库之外。
| 变量或路径 | 用途 |
|---|---|
WUDAO_HOME |
运行数据根目录,默认 ~/.wudao。 |
WUDAO_DB_PATH |
SQLite 数据库路径,默认 WUDAO_HOME/wudao.db。 |
WUDAO_KB_DIR |
知识库目录,默认 WUDAO_HOME/knowledge-base。 |
WUDAO_REPO_ROOT |
自进化流程使用的 Wudao 仓库根目录,默认当前 checkout。 |
WUDAO_LOG_LEVEL |
后端日志级别。 |
WUDAO_HOME/workspace/<taskId> |
任务附件和执行 workspace。 |
WUDAO_HOME/worktrees/<taskId> |
自进化任务的 git worktree。 |
WUDAO_HOME/profile/*.md |
用户记忆、Agent 记忆、通用记忆和助手系统提示。 |
WUDAO_HOME/daily/YYYY-MM-DD.md |
每日记录文件。 |
WUDAO_HOME/logs/main.log |
开发模式统一日志。 |
workspace/ |
仓库内本地工具、缓存和临时产物目录,已被 git 忽略。 |
wudao/
├── AGENTS.md
├── CLAUDE.md -> AGENTS.md
├── GEMINI.md -> AGENTS.md
├── README.md
├── docs/
│ ├── changelog.md
│ ├── claude-agent-sdk-python-reference.md
│ └── design/
├── packages/
│ ├── server/
│ │ ├── src/
│ │ └── tests/
│ └── web/
│ └── src/
├── scripts/
│ ├── dev.sh
│ ├── ensure-uv.sh
│ ├── inspect-task-chat.sh
│ ├── recover-sdk-jsonl.sh
│ ├── sync-server-python.sh
│ └── uv.sh
├── status.md
└── workspace/
- 修改代码前先阅读
AGENTS.md,其中记录了当前架构、数据安全边界和测试要求。 - 后端 Route 和数据库测试使用临时 SQLite,不要用真实用户数据库验证迁移或破坏性逻辑。
- 运行时文件默认应留在
WUDAO_HOME或任务 workspace 内,除非用户显式选择其他路径。 - 修改 API、任务流程、持久化数据或 UI 约定时,同步更新相关设计文档和 changelog。
- 修改脚本时,保持 bash 脚本可重复执行、参数清晰,并同步
scripts/AGENTS.md。
开发脚本会把前后端输出统一写到:
tail -100 ~/.wudao/logs/main.log常用排查命令:
grep "ERROR\|Traceback\|WARN" ~/.wudao/logs/main.log | tail -50
pnpm --filter server test
pnpm --filter web test如果 pnpm install 因缺少 uv 失败,先确认 curl 可以下载官方 uv installer;也可以自行安装 uv 后重新执行 pnpm install。