WeClaws 是一个面向 团队、多账号、按用户沙盒隔离和长期运行 场景的微信 AI 智能体控制台。它把微信通道、工具调用、Skills、MCP、记忆、定时任务和沙盒能力,包装成一个可通过 Web 管理、可多用户注册、可持续托管的控制面。
Self-hosted WeChat AI agent control plane for teams that need multi-user access, per-user sandbox isolation, and long-running operations. It packages WeChat connectivity, tool calling, Skills, MCP, memory, scheduled tasks, and sandboxed execution into a web-managed, multi-user platform for durable hosting.
如果你要的不是“本地手工跑一个机器人脚本”,而是“部署一次后,让多个用户各自管理、分享、登录并长期运行自己的微信 AI 机器人”,WeClaws 更接近这个答案。
如果这个方向对你有帮助,欢迎点个 Star,后续功能和部署实践会持续公开。
@fastagent/sandbox-runtime 为不同用户准备独立的远程沙盒,降低工具执行互相影响的风险。@fastagent/cli 继续负责真正的微信对话和工具执行,WeClaws 专注多用户控制面和运维体验。WeClaws 适合想把微信智能体从“手工命令行实验”升级成“可交付、可托管、可多人使用服务”的团队或个人:
browserless,降低部署门槛。browserless 四个服务。
WeClaws 不把模型服务写死在系统环境变量里。每个用户都可以在网页里创建多条模型配置,每条配置包含服务商、模型名、API 密钥、可选网关地址和接口类型;创建机器人时显式选择其中一条,之后也可以为单个机器人切换配置。也就是说,同一个用户可以让不同机器人分别使用 OpenAI、Anthropic、Google Gemini,或其他兼容接口的模型服务。
当前接口类型支持:
anthropic-messagesopenai-completionsopenai-responsesgoogle-generative-aiFastAgent CLI 还对 OpenAI Chat Completions 兼容接口下的 Kimi K2(kimi-k2*)和小米 MiMo(mimo-v2*)模型做了多轮工具调用兼容处理,适合接入 Kimi、小米等兼容网关。
WeClaws 基于 @fastagent/cli 和 @fastagent/sandbox-runtime 构建。具体版本、升级节奏和最新能力说明,建议直接查看对应 npm 页面或仓库内的版本矩阵手册。
@fastagent/cli 是用户真正使用的智能体运行时,更完整的命令、配置和能力说明可以查看它的 npm 页面。当前公开能力包括:
--output jsonl 输出事件流,让 WeClaws 能可靠解析二维码、登录、运行和错误状态。如果你只想直接体验 FastAgent 命令行工具,可以单独安装:
npm install -g @fastagent/cli
fastagent --help
fastagent doctor
fastagent --channel weixin
如果你想把它变成多人网页服务,再使用 WeClaws。
@fastagent/sandbox-runtime 提供多用户沙盒运行时和进程池管理。WeClaws 用它为不同用户准备独立的远程执行环境,降低账号、文件和工具执行互相影响的风险。
默认 Compose 会构建 sandbox-runtime 镜像。镜像里的工具是在构建阶段预装的,方便机器人在远程沙盒里处理常见任务,不需要每个用户重复安装。
当前内置环境包括:
bun、pnpm。python3、uv。bash、curl、git、gh、ripgrep、jq、file、zip、unzip、socat、procps。lark-cli。make、g++。ffmpeg。pdftotext、pdfinfo、pandoc。bubblewrap 和 @fastagent/sandbox-runtime。agent-browser 客户端,默认 Compose 还会提供 browserless sidecar;受支持路径是由沙盒内 agent-browser -p browserless 或显式远程 --cdp 连接远程浏览器后端,不支持本地启动浏览器;少量一次性截图、PDF、scrape 任务也可以直接走 Browserless。用户 API 密钥、OAuth token、微信登录态、设备配对态等个性化状态不会被打进镜像,仍然需要通过运行时配置或外部状态注入。
WeClaws 内置一组官方托管技能,来源位于 resources/skills/managed。这些技能会同步到每个机器人实例的 data/skills 目录,供 FastAgent CLI 在运行时读取。
完整同步策略、目录标记和维护规则见 托管技能手册。
策略摘要:
resources/skills/managed/manifest.json 是默认同步清单的唯一来源。Sync Skills 入口,只触发托管技能同步,不附带重启语义。data/skills,不会修改用户自管的 workspace/.fastagent/skills。当前默认同步的技能:
| 技能 | 用途 | 主要依赖 |
|---|---|---|
weather | 查询天气和预报 | curl |
github | 通过 GitHub CLI 处理仓库、Issue、PR、CI | gh |
skill-creator | 创建、编辑、校验和打包 FastAgent 技能 | python3 |
video-frames | 用 ffmpeg 从视频中截帧或生成检查图 | ffmpeg |
personal-planner | 面向复杂任务的先规划、再执行工作流 | 无额外命令依赖 |
agent-browser | 浏览器自动化技能说明已收编,默认走 Browserless sidecar | agent-browser、Browserless sidecar |
lark-*(24 skills) | 官方公开的 Feishu/Lark 技能包,覆盖 IM、日历、文档、Drive、Sheets、Slides、Base、Task、Mail、Wiki、会议纪要、OKR、审批等域能力 | lark-cli |
ppt-skill | 生成 HTML 网页 PPT,并交付本地可预览的 deck 资源目录 | node |
editorial-card-screenshot | 生成 editorial 风格信息卡,并通过远程 Browserless 导出 PNG | curl、python3、Browserless sidecar |
技能是否真正可用,还取决于运行环境里是否具备对应命令和授权。例如 GitHub 技能需要可用的 gh 认证上下文;lark-* 技能依赖 bot 自己完成 lark-cli 的应用配置与授权;ppt-skill 依赖 node 执行校验脚本;editorial-card-screenshot 的截图导出依赖 Browserless 远程路径;用户级密钥和 OAuth 状态不会内置进镜像。
| 层级 | 负责什么 | 不负责什么 |
|---|---|---|
@fastagent/cli | 智能体运行时、微信通道、工具调用、技能、MCP、记忆、定时任务、沙盒参数、JSONL 事件 | 多用户网页管理、账号权限、实例数据库、页面状态 |
@fastagent/sandbox-runtime | 多用户远程沙盒、进程池、隔离执行环境 | 网页控制台、机器人生命周期、业务数据库 |
apps/supervisor | 读取数据库里的运行意图,启动/停止 FastAgent 子进程,注入实例环境变量,消费事件并落库 | 网页界面、认证、用户交互 |
apps/web | 控制台、HTTP 接口、Better Auth、SSE、机器人/模型配置管理、技能同步入口 | 直接拉起本地进程、直接持有运行态真相 |
packages/db | SQLite 结构、迁移、仓储 API、持久化语义 | 业务界面、外部运行时 |
packages/shared | 跨工作区的稳定类型、路径规则、JSONL 结构 | 各工作区的内部实现 |
核心原则:网页只写入“用户想让机器人运行”的持久化意图;supervisor 才拥有运行时;FastAgent CLI 才是真正执行智能体的进程。
要求:
pnpm install
cp .env.example .env
pnpm db:generate
pnpm db:migrate
分别启动网页和 supervisor:
pnpm dev:web
pnpm dev:supervisor
打开 http://localhost:3000,注册/登录后:
默认 Compose 栈包含网页、supervisor、sandbox-runtime 和 browserless 四个服务。复制环境文件后,一条命令即可拉起:
cp infra/compose/.env.example infra/compose/.env
docker compose --env-file infra/compose/.env -f infra/compose/docker-compose.yml up -d
生产部署可以直接使用已发布镜像,不需要在服务器上构建:
docker compose \
--env-file infra/compose/.env \
-f infra/compose/docker-compose.yml \
-f infra/compose/docker-compose.prod.yml \
pull
docker compose \
--env-file infra/compose/.env \
-f infra/compose/docker-compose.yml \
-f infra/compose/docker-compose.prod.yml \
up -d
生产环境至少确认:
APP_BASE_URL 和实际访问地址一致。BETTER_AUTH_SECRET 已替换成真实随机密钥。WEB_ADMIN_EMAILS 填写首个管理员邮箱;首次注册命中该邮箱时可以完成管理员自举。WECLAWS_DATA_ROOT 指向宿主机上的持久化目录;建议使用 /srv/weclaws/data 这类标准服务目录,避免路径里出现个人用户名、临时项目名等宿主机细节。FASTAGENT_* 环境变量不再作为机器人默认模型来源。上线后的基本路径是:
WEB_ADMIN_EMAILS 中的邮箱完成注册。WECLAWS_DATA_ROOT=/srv/weclaws/data
完整部署说明见 Docker 部署手册。
apps/
web/ Next.js 控制台、接口、认证、SSE
supervisor/ FastAgent 子进程管理和状态收敛
packages/
db/ SQLite / Drizzle 结构、迁移、仓储 API
shared/ 跨工作区的契约、常量、路径和 JSONL 结构
infra/
compose/ Docker Compose 拓扑和生产覆盖配置
docker/ 网页、supervisor、sandbox-runtime 镜像
docs/manuals/ 稳定的运维、契约、环境变量和部署文档
resources/
skills/ WeClaws 托管技能包
pnpm test
pnpm typecheck
pnpm lint
pnpm --filter @weclaws/web test
pnpm --filter @weclaws/supervisor test
pnpm --filter @weclaws/db test
pnpm test:fastagent-contract
pnpm test:fastagent-contract 只在具备所需 FastAgent/模型服务环境时运行。