Skip to content

zth9/wudao

Repository files navigation

Wudao

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]
Loading

Wudao 是一个 pnpm monorepo:

  • packages/web:Vite、React 19、TypeScript、Tailwind CSS v4、HeroUI、zustand、i18next。
  • packages/server:FastAPI、sqlite3、SSE、httpx、claude-agent-sdkopenai-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 配置

启动后进入设置页,至少配置一个 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.db

运行时数据

Wudao 默认把运行时数据放在仓库之外。

变量或路径 用途
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

关键文档

About

AI Studio,个人 AI 工作站,整合多种 AI 工具,Project、Task 管理,探索 Symphony Agent Team

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors