架构与特点
CrabCLI 是一套自包含的 AI 工程化底座:一个主程序 + 两个自研底座(数据/文件) + 统一执行抽象。私有化部署时,代码、数据、凭据全部留在你自己的网络里。
总体架构
系统由一个主程序和若干可独立部署的组件构成。主程序 crab 是协调中枢:界面、编排、调度、鉴权都在这里;数据与文件交给两个自研底座;执行交给统一抽象之下的四种后端。浏览器工作台面向人开放五类入口:AI 机台发起会话、频道承载协作,以及三个构建器——技能构建器沉淀专项能力、Swarm 构建器编排多 Agent 产线、知识库构建器管理资料与派生知识。
crab 主程序:协调中枢
crab 是一个自包含的主程序:Web 界面、登录鉴权、分级权限、频道协作、Swarm 编排、定时任务、知识库、技能库、节点管理全在一个进程里,不依赖外部 Web 框架与前端构建链,部署即一个进程。启动时严格自检:数据底座、文件底座、MCP 服务依次就绪后才开放 Web 端口——依赖不就绪宁可拒启,也不带病运行。
myctx:自研数据底座
myctx 是自研数据引擎,对外同时讲两种标准协议——MySQL 协议(默认 :8306,业务数据)与 Redis 协议(默认 :8379,缓存/队列语义),独立进程 myctxd 运行,crab 以标准客户端接入。因为讲 MySQL 协议,任何 MySQL 客户端都能直连查数;部署不需要外部数据库集群。表结构演进走版本化迁移脚本,启动时自动对齐。服务端自身配置(数据目录、监听端口)在 conf/myctx.yml,与 crab 侧的客户端连接配置(conf/server.yml 的 myctx.db.*)是标准的 client/server 边界;两边端口对不上会在启动时连接被拒、明确报错,不是静默故障。
fs9:自研文件底座
fs9 是 keyspace 语义的虚拟文件系统,同样建立在 myctx 之上。知识库、技能库、会话工作区、CLI 会话记录全部落在 fs9——Agent 在哪台机器执行,看到的就是同一份文件。对外暴露 WebDAV 桥(默认 :6383,鉴权访问),控制口仅监听回环;执行环境把 fs9 挂载成本地目录使用。两种运行模式:embedded(随 crab 进程内运行)与 daemon(独立 fs9d 进程,crab 重启时进行中的任务零中断)。全部 fs9.* 配置的唯一来源是 conf/fs9d.yml,crab 与 fs9d 两个进程共读一份——避免双写漂移导致的静默故障。
执行后端:一种抽象,四种形态
所有任务执行都走统一的执行抽象,上层编排不感知差异。四种形态覆盖从个人电脑到企业集群:
| 形态 | 执行位置 | 适用 |
|---|---|---|
| 本机执行 | crab 所在服务器,直接起进程 | 轻量任务、本地调试 |
| Docker 容器 | 本机或远端 Docker,容器内执行 | 隔离环境、可复现构建 |
| E2B 云沙箱 | E2B 协议沙箱(可用本地 Docker 作后端) | 按需弹性、用完即毁 |
| 远程节点 | 你自己的机器跑 x-runner,经 WebSocket 回连 crab | 自有硬件、GPU 机器、Mac(iOS 构建)、内网环境 |
派任务时选「Auto」由系统按可用性智能选路,也可显式指定沙箱或节点。远程节点(x-runner)是桌面壳 + daemon 合一的跨平台二进制(macOS / Windows / Linux),只需出站连接到 crab——无入站端口、无公网 IP、无 VPN;代码 checkout、构建缓存与本机凭据始终留在节点上,回传的只有执行所需的消息与产物。节点上线后自动探测并上报能力:已装 CLI 及版本、运行环境(tmux / rclone / node / git …)、设备与浏览器能力,供选路决策。
local-e2b-server:自托管沙箱服务
E2B 云沙箱不一定用官方云:local-e2b-server 是自建的沙箱服务,兼容 E2B 协议、把所在机器的 Docker 当后端,可脱离 crab 独立部署(默认 TLS :8443)。它按模板管理沙箱镜像(镜像 / 内存 / CPU / 网络),带预热池让会话秒开,带容器总量上限与空闲回收保护宿主内存;对外 API 可配 API Key 鉴权,管理控制台只服务回环来源、永不对外。crab 侧的后端注册表 conf/e2b.yml 热加载:每个后端声明接入地址、模板与并发上限(满了排队而不是打爆宿主),并注入沙箱访问 fs9 / MCP / 状态回流所需的地址——沙箱里运行的 CLI 因此能直接挂载同一份 fs9 工作区、调用同一套 MCP 工具。
多 CLI 桥接:不绑死任何一个智能体引擎
CrabCLI 不自己造智能体引擎,而是桥接业界主流 CLI:Claude Code、Gemini CLI、Qwen Code、OpenAI Codex、OpenCode、Pi CLI。每个会话都有「终端自动驾驶」看护:识别 CLI 弹出的交互请求(确认、选择、授权)并自动应答,判断任务在推进、已完成还是卡死并自动处置——长任务无人值守也能跑到底。会话记录落在 fs9,可回看、可恢复。换 CLI 只是下拉框里的一次选择,编排、频道、知识库、产物回收全部不变。
MCP 服务与模型网关
crab 内置 MCP 服务(默认 :8089),向 Agent 暴露记忆、知识库、设计、代码搜索、定时任务、swarm、商店、邮件、浏览器、设备等工具;外部 MCP 服务也可注册接入。
llmproxy 是统一模型网关(HTTP :7778 / HTTPS :7779):每个模型名下挂一组加权上游节点,自动做协议适配与故障切换,支持按用户配额度与可用模型清单。执行环境里的 CLI 统一经它调模型——上游密钥只存在于网关配置里,不下发到沙箱与节点。另有 sshproxy(默认 :22000)提供 SSH 通道能力。
基础设施清单:进程、端口与配置
一套完整部署涉及的组件与默认监听(均可配置,以配置文件为准):
| 组件 | 进程 | 默认端口 | 配置文件 |
|---|---|---|---|
| crab | 主程序(协调中枢) | :8080 Web/WS · :8089 MCP | conf/server.yml |
| myctxd | 数据底座(业务库) | :8306 MySQL 协议 · :8379 Redis 协议 | conf/myctx.yml |
| fs9d | 文件底座(daemon 模式) | :6383 WebDAV · :6390 控制口(回环) | conf/fs9d.yml |
| local-e2b-server | 自托管沙箱服务 | :8443 TLS(默认仅回环) | conf/local-e2b.yml |
| llmproxy | 模型网关 | :7778 HTTP · :7779 HTTPS | conf/config.yml |
| sshproxy | SSH 通道 | :22000 | conf/sshproxy.yml |
| x-runner | 远程节点(你的机器上) | 无监听,全出站回连 crab | 安装向导生成 |
协作模型:频道 + Swarm 引擎
频道承载人与 Agent 的协作:消息、话题、任务看板、附件、知识库五区合一,支持邮箱外部成员与外部消息源(邮箱轮询、Telegram / 钉钉 / 飞书桥接,全部出站连接、零入站)。Swarm 引擎以显式状态机管理产线全生命周期:lead 拆解、member 认领、卡住自动上报 lead、进程重启后未完成的产线自动恢复。任务卡必须指定执行者与评审人——Agent 从不自判完成。
特点速览
| 特点 | 说明 |
|---|---|
| 数据不出内网 | 私有化部署时,代码、知识库、会话、凭据全部留在你的网络;远程节点只需出站连接 |
| 自研双底座 | myctx(标准数据库协议)与 fs9(keyspace VFS),无外部数据库/对象存储依赖 |
| 多 CLI 异构 | 一条产线里可混用不同 CLI、不同机器、不同模型,各取所长 |
| 自有硬件利用 | GPU 服务器、Mac 构建机、内网机器注册为节点即入资源池,Auto 自动选路 |
| 人机同权协作 | Agent 是频道里的正式成员:@ 得到、领任务、交报告,人保留验收权 |
| 可沉淀复用 | 流程存成蜂群、经验写成技能、资料进知识库,团队资产持续累积 |
接下来
底座细节:读 myctx / fs9d 与 llmproxy;执行环境实操:读 机器与执行环境;上手使用:读 用户上手指南。