by xvirobotics
构建受监督的、自我进化的 Agent 组织的基础设施 | Infrastructure for supervised, self-improving agent organization. 飞书/Telegram 手机端运行 Claude Code 或 Kimi Code(双引擎,两家原生订阅直接用),共享记忆、Agent 工厂、定时任务、通信总线。
# Add to your Claude Code skills
git clone https://github.com/xvirobotics/metabotLast scanned: 5/7/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@anthropic-ai/claude-agent-sdk: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@anthropic-ai/sdk: Claude SDK for TypeScript has Insecure Default File Permissions in Local Filesystem Memory Tool",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server: Middleware bypass via repeated slashes in serveStatic",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@larksuiteoapi/node-sdk: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@volcengine/openapi: Vulnerability found",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "@xmldom/xmldom: xmldom: Uncontrolled recursion in XML serialization leads to DoS",
"severity": "high"
},
{
"type": "npm-audit",
"message": "axios: Axios Cross-Site Request Forgery Vulnerability",
"severity": "high"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "express-rate-limit: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "flatted: flatted vulnerable to unbounded recursion DoS in parse() revive phase",
"severity": "high"
},
{
"type": "npm-audit",
"message": "follow-redirects: follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "hono: Hono missing validation of cookie name on write path in setCookie()",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "picomatch: Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
"severity": "high"
},
{
"type": "npm-audit",
"message": "postcss: PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "protobufjs: Arbitrary code execution in protobufjs",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "vite: Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling",
"severity": "high"
},
{
"type": "npm-audit",
"message": "xlsx: Prototype Pollution in sheetJS",
"severity": "high"
}
],
"status": "FAILED",
"scannedAt": "2026-05-07T06:38:03.303Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
写代码 · 管 Agent · 自动化一切
支持 Claude Code、Kimi Code 和 Codex CLI 三大引擎 — 订阅 / API Key 任你选,每个 Bot 可独立选引擎。
curl -fsSL https://raw.githubusercontent.com/xvirobotics/metabot/main/install.sh | bash
安装器引导一切:工作目录 → 引擎选择(Claude / Kimi / Codex) → 订阅登录 → IM 平台 → PM2 自动启动。5 分钟上手。
自定义安装目录(默认
~/metabot):curl ... | bash -s -- --dir /opt/metabot,或METABOT_HOME=/opt/metabot bash install.sh。Windows:.\install.ps1 -Dir C:\opt\metabot。
MetaBot 不是只绑定一家 — 三大顶级 AI 编码 Agent 都内置原生支持,你的订阅直接用。
| | Claude Code(Anthropic) | Kimi Code(Moonshot) | Codex CLI(OpenAI) |
|---|---|---|---|
| 订阅直连 | ✅ claude login OAuth | ✅ kimi login | ✅ codex login,走 ChatGPT 订阅 |
| API Key 兜底 | ✅ ANTHROPIC_API_KEY / 第三方 Anthropic 兼容端 | ✅ Moonshot API Key | ✅ OPENAI_API_KEY / Codex profile |
| 上下文窗口 | 200k(Opus/Sonnet 可选 1M) | 256k(kimi-for-coding) | 400k(gpt-5.x-codex) |
| 工具能力 | Read/Write/Edit/Bash/Glob/Grep/WebSearch/MCP | 同上(Kimi CLI 原生 + .claude/skills/ 自动发现) | Codex CLI 原生工具链 + .codex/skills/ 自动发现 |
| 自主运行模式 | bypassPermissions | yoloMode(等价) | 默认 --sandbox danger-full-access,避免无 user namespace 环境下的 bwrap 失败 |
| 子 Agent | .claude/agents/*.md 自动加载 | 仅内置 default / okabe | 暂不支持项目子 Agent;把角色/路由写进 AGENTS.md |
| 工作区说明 | CLAUDE.md | AGENTS.md(安装器自动建软链) | AGENTS.md(Codex 官方约定) |
配置只需一行 — 每个 Bot 独立选引擎:
{ "name": "bulma", "engine": "kimi", "kimi": { "thinking": true } }
{ "name": "goku", "engine": "claude" }
{ "name": "vegeta", "engine": "codex", "codex": { "model": "gpt-5.4-codex" } }
Codex 支持通过本机 codex exec --json CLI 接入,并使用 codex exec resume 续接聊天会话。启动 MetaBot 前,请先执行 codex login 或配置好 Codex API key/profile。MetaBot 会把飞书侧的 /<skill-name> ... 调用统一转成 Codex 的 $<skill-name> ... 显式技能调用(例如安装了 /metaschedule 后,Codex 会收到 $metaschedule ...)。
.claude 配置Claude/Kimi 和 Codex 的发现路径不同。MetaBot 安装、更新和 Skill Hub 安装时会自动镜像内置 skills:
| 内容 | Claude / Kimi | Codex |
|------|---------------|-------|
| 工作区说明 | CLAUDE.md | AGENTS.md |
| Skills | .claude/skills/<name>/SKILL.md | .codex/skills/<name>/SKILL.md |
| 子 Agent | .claude/agents/*.md | 不自动加载;迁移为 AGENTS.md 里的角色/路由说明 |
已有项目可以直接让 Codex 帮你迁移:
/model codex
请根据当前项目的 .claude 配置,为 Codex 创建对应的 .codex/skills 和 AGENTS.md:
- 把 .claude/skills/* 镜像到 .codex/skills/*
- 根据 CLAUDE.md 生成或更新 AGENTS.md
- 如果存在 .claude/agents/*.md,把这些 subagent 的角色、路由表和工作流整合进 AGENTS.md
如果你的宿主机禁用了 unprivileged user namespace,Codex CLI 的 workspace-write sandbox 可能在命令执行前报 bwrap: No permissions to create a new namespace。MetaBot 的 Codex 默认改用 danger-full-access 避开这个问题;需要更强隔离时可以通过 CODEX_SANDBOX 或 codex.sandbox 显式覆盖。
前端 Bot 用 Claude、后端 Bot 用 Kimi?完全可以。Agent 总线让它们互相委派任务,对面跑什么引擎对调用方透明。
| | MetaBot | 直接用 Claude / Kimi / Codex CLI | Dify / Coze |
|---|---|---|---|
| 手机控制 | 飞书/TG/微信随时随地 | 只能在终端 | 有,但不能跑代码 |
| 引擎选择 | Claude ✕ Kimi ✕ Codex 三引擎 | 各自单一 | 无,只能调 API |
| 订阅直连 | 三家原生订阅都直接用 | 一次只能登一个 | 不支持订阅 |
| 代码能力 | 完整 Agent SDK(Read/Write/Edit/Bash/MCP) | 完整 | 无 |
| 多 Agent | Agent 总线 + 任务委派 + 运行时创建 | 单会话 | 有,但封闭生态 |
| 共享记忆 | MetaMemory 全文搜索 + 自动同步飞书知识库 | 无 | 无 |
| 定时任务 | CC 原生 CronCreate / /loop 即开即用,可选 /metaschedule 跨重启持久化 | 仅原生 CronCreate / /loop | 有 |
| 自主运行 | bypassPermissions / yoloMode,全自动 | 需要人工确认 | 受限于 workflow |
| 开源 | MIT,完全可控 | CLI 开源 | 闭源 SaaS |

飞书/TG/微信 → IM Bridge → Engine Router ──┬─→ Claude Code Agent SDK
├─→ Kimi Agent SDK(@moonshot-ai/kimi-agent-sdk)
└─→ Codex CLI(codex exec --json 子进程)
↕
MetaMemory(共享知识库)
定时调度(CC 原生 CronCreate / /loop;可选 /metaschedule 持久化)
Agent 总线(跨 Bot 通信,引擎无关)
Agent 工厂(可选 /metaskill,按需安装)
引擎层已抽象 —— Kimi 事件流和 Codex JSONL 都被翻译成 Claude 形状的 SDKMessage,流式卡片、工具调用追踪、MetaMemory/调度/Agent 总线在三种引擎下表现一致。
MetaBot 支持 4 种方式与你的 Agent 团队交互:
| 客户端 | 场景 | 特色功能 | |--------|------|---------| | 飞书/Lark | 工作场景,团队协作 | 流式交互卡片、@mention 路由、知识库自动同步 | | Telegram | 个人/国际用户 | 30 秒配置、长轮询无需公网 IP、群聊 + 私聊 | | Web UI | 浏览器端,语音对话 | 电话语音模式(VAD)、RTC 实时通话、MetaMemory 浏览器、团队看板 |
| 支柱 | 组件 | 作用 |
|------|------|------|
| 受监督 | IM Bridge | 实时流式卡片展示每一步工具调用。人类看到 Agent 做的一切 |
| 自我进化 | MetaMemory | 共享知识库。Agent 写入学到的东西,其他 Agent 检索引用 |
| Agent 组织 | Agent 总线 + CC 原生调度(可选 MetaSkill / MetaSchedule) | Agent 互相委派任务、按需创建新 Agent;用 CC 内置 CronCreate / /loop 即可定时;要跨重启可装可选 /metaschedule |
浏览器端全功能聊天界面,部署即可用。访问地址:https://your-server/web/

技术栈:React 19 + Vite + Zustand + react-markdown
语音功能需要 HTTPS。推荐用 Caddy 反向代理,自动管理证书。详见 Web UI 文档。
| 组件 | 一句话说明 |
|------|-----------|
| 三引擎内核 | 每个 Bot 独立选 Claude Code / Kimi Code / Codex CLI — 完整工具链(Read/Write/Edit/Bash/Glob/Grep/WebSearch/MCP),自主模式运行 |
| 常驻会话与目标循环 | 每个会话一个常驻 Claude 进程 — /goal 让 Agent 在多轮之间持续自驱直到目标达成;团队成员和后台任务跨轮存活 |
| Agent 团队(运行时) | 主导 Agent 并行派遣专家队友,互相路由任务、汇总结果 —— 全部在一个飞书会话中完成 |
| CC 原生调度 | 直接用 Claude Code 内置的 CronCreate / /loop —— 即开即用,会话内最简单 |
| MetaMemory | 内嵌 SQLite 知识库,全文搜索,Web UI,变更自动同步到飞书知识库 |
| IM Bridge | 飞书、Telegram、微信(含手机端)对话任意 Agent,流式卡片 + 工具调用追踪 |
| Agent 总线 | Agent 通过 mb talk 互相对话,运行时创建/删除 Bot |
| MetaSchedule(可选) | 跨重启的服务端定时调度器,Cron + 一次性延迟,HTTP API + mb schedule CLI。默认不装,按需 cp src/skills/metaschedule/SKILL.md 启用 |
| MetaSkill(可选) | Agent 工厂。/metaskill 一键生成可迁移的 Agent 团队。默认不装,按需 cp src/skills/metaskill/ 启用 |
| 飞书 Lark CLI | 200+ 命令覆盖文档、消息、日历、任务等 11 大业务域,19 个 AI Agent Skills |
| Skill Hub | 跨实例技能共享注册中心。mb skills 发布、发现、安装技能,FTS5 全文搜索 |
| Peers 联邦 | 跨实例 Bot 发现和任务路由,mb talk alice/backend-bot 自动路由 |
| 语音助手 | Jarvis 模式 — AirPods 说 "Hey Siri, Jarvis" 语音控制 Agent |
/newbot → 复制 tokenbots.json → 完成(长轮询,无需 Webhook)install.sh,选 3) WeChat ClawBot — 扫码绑定im:message、im:message:readonly、im:resource、im:chat:readonlyim.message.receive_v1 事件不需要公网 IP。飞书用 W