AI Agent 统一网关 —— 连接 IM、终端、Agent 网络
EvolClaw 是一个轻量级 AI Agent 网关系统。它为 Claude Code / Codex 等 AI Agent 提供统一接入层,支持飞书、微信、AUN Mesh 网络和终端 TUI 四种通道。人类可以通过手机 IM 随时接力开发,其他 Agent 也可以通过 AUN 网络直接调用你的 Agent —— 不只是人机交互,也是 Agent 间协作的基础设施。
- 🔄 多端会话接力:跨终端共享会话、环境、项目,无缝切换开发体验
- ♻️ 配置自动继承:复用 CLI 环境的 API Key/URL、记忆文件、MCP/Skills 插件,零额外配置
- 🚀 轻量化设计:进程模式运行,CLI 命令行管理,无端口开放,无容器依赖,无 UI 界面
- 📁 多项目支持:每个项目独立会话,支持动态切换
- 👥 双模式会话:多用户私聊会话隔离,群聊会话共享,满足不同协作场景
- 🌐 多渠道接入:Channel Adapter 模式,飞书 + 微信 + AUN Mesh 网络,扫码一键接入
- 🤖 Agent 间互联:通过 AUN 网络,你的 Agent 可被其他 Agent 发现和调用
- 🖥️ 终端 TUI 客户端:
evolclaw tui直接在终端与远程 Agent 对话,无需 IM - 🔐 分层权限:用户级/管理员级命令分离,多用户安全隔离
- 📦 项目搬家:
evolclaw mv一键迁移项目目录,保留 Claude/Codex/EvolClaw 全部会话历史 - 💾 会话持久化:会话数据与 CLI 工具共享,不额外存储,服务重启不丢失
- ⚡ 执行中插入:任务执行中可发送新消息,自动中断当前任务并处理新请求
- 🔕 消息智能发送:前台任务动态聚合批量发送,后台任务静默完成后通知
- 🤖 健壮性保障:任务超时提醒、会话异常安全模式修复、重启失败自动自愈
- 通勤路上:手机打开飞书,继续昨晚的代码 review,到公司无缝切回终端
- 会议间隙:微信快速问一句「这个接口的返回格式是什么」,Agent 直接查代码回复
- 终端直连:
evolclaw tui在任意终端直接与远程 Agent 对话,无需打开 IM - Agent 协作:通过 AUN 网络,让你的 Agent 被其他 Agent 调用,组成分布式协作
- 外出离开工位:不带电脑也能通过 IM 给 Agent 下达任务,回来看结果
- 团队协作:拉个飞书群,成员共享同一个 Agent 会话,一起讨论和调试
消息渠道层 → 消息队列层 → 命令处理层 → 消息处理层 → 会话管理层 → 存储层
- 消息渠道层 (
src/channels/) - Feishu WebSocket + WeChat HTTP 长轮询 + AUN Mesh 网络 - 消息队列层 (
src/core/message/message-queue.ts) - 会话级串行处理 + 中断支持 - 命令处理层 (
src/core/command-handler.ts) - 斜杠命令处理(CommandHandler 类) - 消息处理层 (
src/core/message/message-processor.ts) - 统一事件处理引擎 - 会话管理层 (
src/core/session/session-manager.ts) - 多项目会话管理 - 交互路由层 (
src/core/interaction-router.ts) - 卡片交互回调注册与路由 - 会话存储层 - JSONL 文件(CLI 共用)+ SQLite 元数据
用户发送消息
↓
Channel.onMessage
↓
检查命令 → 是 → CommandHandler.handle() → 立即响应(绕过队列)
↓ 否
MessageQueue.enqueue(streamKey, message)
↓
检测正在处理 → 是 → 触发中断 → AgentRunner.interrupt()
↓ 否 ↓
MessageQueue.processNext() ←──────────────┘
↓
MessageProcessor.processMessage()
↓
├─ 解析会话和项目路径
├─ 创建 StreamFlusher(3 秒批量发送)
├─ AgentRunner.runQuery() → 事件流
├─ 处理事件(tool_use / text / result)
├─ 提取文件标记(Feishu)
└─ 发送最终响应
- 操作系统:macOS / Linux / Windows
- Node.js >= 22(需要 node:sqlite 内置模块支持)
- Claude Code >= 2.1.32(
npm install -g @anthropic-ai/claude-code)
npm 全局安装(推荐):
npm install -g evolclawWindows 用户:首次运行前可能需要执行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
从源码安装:
git clone https://github.com/eLeanwang/evolclaw.git
cd evolclaw
npm install
npm run build
npm link# 完整初始化(选择飞书或微信)
evolclaw init
# 单独配置飞书(扫码登录)
evolclaw init feishu
# 单独配置微信(扫码登录)
evolclaw init wechat
# 单独配置 AUN(Mesh 网络通道)
evolclaw init aun交互式引导完成以下配置:
- 环境检查(Node.js >= 22、claude CLI、SDK 版本)
- 渠道选择(飞书/微信)并扫码登录
- 默认项目路径
- 模型选择(sonnet/opus/haiku)
- 自动写入
EVOLCLAW_HOME到 shell profile(Unix)或用户环境变量(Windows)
配置文件生成在 {EVOLCLAW_HOME}/data/evolclaw.json(默认 ~/.evolclaw/data/evolclaw.json)。
以下参数不包含在 evolclaw init 交互流程中,需要手动编辑 evolclaw.json:
API 继承机制:agents.anthropic 整个 section 可省略,系统自动按以下优先级继承:
apiKey:配置文件 →ANTHROPIC_AUTH_TOKEN环境变量 →~/.claude/settings.jsonbaseUrl:配置文件 →ANTHROPIC_BASE_URL环境变量 →~/.claude/settings.jsonmodel:配置文件 →~/.claude/settings.json→ 默认sonneteffort:配置文件 →~/.claude/settings.json→ SDK 默认值(auto)
# 服务管理
evolclaw start # 启动服务
evolclaw stop # 停止服务
evolclaw restart # 重启服务
evolclaw status # 查看状态
evolclaw logs # 查看日志(tail -f)
evolclaw tui # 启动 AUN TUI 终端客户端
evolclaw mv <old> <new> # 项目搬家(保留全部会话)
evolclaw diagnose # 诊断启动环境
# 开发模式(热重载)
npm run dev
# 运行测试
npm testevolclaw/
├── src/
│ ├── agents/
│ │ ├── claude-runner.ts # Claude Agent SDK 封装
│ │ ├── codex-runner.ts # Codex Agent 封装
│ │ └── gemini-runner.ts # Gemini CLI 封装
│ ├── core/
│ │ ├── message/
│ │ │ ├── message-bridge.ts # 渠道 ↔ 核心消息桥
│ │ │ ├── message-processor.ts # 统一消息处理引擎
│ │ │ ├── message-queue.ts # 消息队列(串行+中断)
│ │ │ ├── message-cache.ts # 消息缓存
│ │ │ └── stream-flusher.ts # 批量发送(3秒窗口)
│ │ ├── session/
│ │ │ ├── adapters/ # 各后端会话文件适配器
│ │ │ └── session-manager.ts # 会话管理(多项目支持)
│ │ ├── command-handler.ts # 斜杠命令处理
│ │ ├── interaction-router.ts # 卡片交互回调路由
│ │ └── permission.ts # 权限网关
│ ├── channels/
│ │ ├── feishu.ts # 飞书 WebSocket 渠道
│ │ ├── wechat.ts # 微信 ClawBot 渠道
│ │ └── aun.ts # AUN Mesh 网络渠道
│ ├── utils/ # 工具函数
│ ├── types.ts # 类型定义
│ ├── config.ts # 配置加载
│ ├── paths.ts # 路径解析
│ ├── cli.ts # CLI 命令(init/start/stop/tui/mv/...)
│ └── index.ts # 主入口
├── aun/
│ ├── aun_cli.py # AUN TUI 客户端(Python)
│ └── pyproject.toml # AUN CLI 依赖声明
└── data/
└── evolclaw.sample.json # 配置模板
会话管理:
/new [名称]- 创建新会话/slist- 列出当前项目的所有会话/slist cli- 列出未导入的 CLI 会话/s <名称|序号|uuid>- 切换到指定会话/name <新名称>- 重命名当前会话/del <名称>- 删除指定会话(仅解绑,不删除文件)/status- 显示会话状态/help- 显示所有命令
项目管理:
/pwd- 显示当前项目路径/plist- 列出所有项目(显示会话空闲时间)/p <name|path>- 切换项目(保留会话历史)/bind <path>- 绑定新项目目录
Agent 与模型:
/agent [name]- 查看或切换 Agent 后端(claude / codex / gemini)/model [model]- 查看或切换模型/effort [level]- 查看或切换推理强度(low / medium / high / max / auto)/perm [mode]- 查看或切换权限模式(auto / edit / default / readonly)
系统管理:
/clear- 清空对话历史/compact- 压缩会话上下文/stop- 中断当前任务/send <文件路径>- 发送文件给用户/check- 系统健康检查面板/restart- 重启服务(自愈机制)/repair- 检查并修复会话/safe- 进入安全模式
- 运行时:Node.js >= 22 + TypeScript(ES modules)
- AI SDK:@anthropic-ai/claude-agent-sdk >= 0.2.75、@openai/codex-sdk、Gemini CLI
- 消息渠道:飞书(@larksuiteoapi/node-sdk)、微信(ClawBot ilink API)、AUN Mesh 网络
- 数据存储:node:sqlite(内置模块)+ JSONL(CLI 共用)
- 测试框架:Vitest
- Windows 系统 CLI 命令支持
- 微信插件支持图片/文件的收发
- AUN Mesh 网络通道接入
- TUI 终端客户端(
evolclaw tui) - 项目搬家工具(
evolclaw mv) - 自动授权可配置(自动放行/自动拒绝)
- 手动授权支持(文本回复)
- 手动授权支持(飞书卡片)
- ACP 协议支持(接入 Codex / Gemini CLI)
MIT — 详见 LICENSE 声明
EvolClaw 正在内测中,欢迎加入微信群交流使用体验、反馈问题或参与讨论:
二维码过期后可在 Issues 中留言,我会更新邀请链接。

{ "projects": { "autoCreate": true // 绑定不存在的项目路径时自动创建目录 }, "idleMonitor": { "enabled": true, // 任务超时监控开关 "timeout": 120, // 超时阈值(秒),默认 120 秒 "safeModeThreshold": 3 // 连续超时 N 次后进入安全模式(设为 0 禁用安全模式) }, "flushDelay": 4 // 工具活动消息聚合发送间隔(秒),默认 4 秒 }