[特殊字符] 用 OpenClaw 实现一个 C++ 复刻版 QuantClaw

最近在 Discord 上和 OpenClaw 聊得比较多,越聊越想把它搬到 C++ 上实现。于是花了些时间,通过在 Discord 上与 OpenClaw 聊天的方式用 C++ 17 从零复刻了一个版本------带 WebSocket 网关、Web 控制台以及 Discord/Telegram 接入。

目前 324 个单元测试已全部跑通。今天正式开源。


🗣️ 故事的起点:在 Discord 上和 OpenClaw 聊天

OpenClaw 是一个挺有意思的开源 AI 项目,新年期间我一直在折腾它。日常就是在 Discord 里和机器人对话------理需求、聊想法,或者让它帮忙写点代码。

聊久了,职业病就犯了:OpenClaw 基于 TypeScript,功能很全,但运行时开销确实不小。我开始想:如果用 C++ 复刻一个,性能能压榨到什么程度?能不能跑在一台 2GB 内存的廉价小服务器上?

于是有了 QuantClaw------一个在对话中诞生,用 C++17 复刻的 OpenClaw。


🤔 为什么要用 C++ 复刻?

目前市面上的 AI 助手框架基本是 Python 或 TypeScript 的天下。开发效率虽高,但运行时占用的内存也多------一个空闲的 Node.js 进程通常要吃掉 50-80MB 内存,Python 甚至更多。

如果你打算在一台 2GB 内存的云服务器上 7x24 挂着私人 AI 助手,这部分内存开销就成了不得不考虑的资源成本。

QuantClaw 的做法是:全量 C++17 实现。

原生二进制运行,没有解释器开销和 GC 停顿,启动即就绪。内存占用降到了同类方案的 1/8 左右。

上图是我运行 QuantClaw 后的资源占用情况,其资源消耗极少。


📐 QuantClaw 是什么

QuantClaw 是 OpenClaw 生态的一个 C++ 原生实现。它兼容 OpenClaw 的工作空间标准(SOUL.md / USER.md / MEMORY.md)、技能系统(SKILL.md)以及 WebSocket RPC 协议,可以直接对接原有的前端和客户端。

简单说:这是一个更轻量、更高性能的私人 AI 助手后端。


🏗️ 架构一览

核心组件纯 C++ 实现,频道适配器(如 Discord)作为独立进程通过 WebSocket RPC 接入网关,保持了和 OpenClaw 一致的解耦设计。


🚀 启动:一行命令

复制代码
git clone https://github.com/QuantClaw/QuantClaw.git
cd QuantClaw && mkdir build && cd build
cmake .. && make -j$(nproc)
./quantclaw gateway

Bash

网关启动很快,你可以看到各组件初始化的日志:

从 MemoryManager 到 GatewayServer 初始化完成,整个过程不到 1 秒。


🖥️ Web 控制台

网关自带了一个简单的 Web 控制台。浏览器访问 localhost:18790 即可与助手对话:

顶部显示实时连接数、运行时间等状态信息。下方聊天界面支持 Markdown 渲染。

后台提供了 12 个 REST API 端点,方便通过 curl 或其他工具集成到自动化流里。


🎮 Discord 频道接入

这是 QuantClaw 诞生的初衷。在配置里填入 Token,网关会自动拉起适配器进程:

复制代码
{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_DISCORD_BOT_TOKEN"
    }
  }
}

Json

接入后的对话效果:

消息流转逻辑如下:

日志会记录每一轮 RPC 调用的链路,方便排查消息流转状态:


🔌 多模型支持

QuantClaw 支持通过 provider/model-name 前缀进行路由:

复制代码
{ "model": "openai/Qwen3-32B" }
{ "model": "openai/gpt-4o" }
{ "model": "anthropic/claude-sonnet-4-6" }

Json

兼容 OpenAI 格式的接口基本都能无缝接入。


📦 功能清单

目前 324 个单元测试全绿通过 ✅


🔧 技术栈

纯 C++17 实现,核心依赖如下:


⚡ 快速上手

Ubuntu / Debian:

复制代码
sudo apt install build-essential cmake libssl-dev \
  libcurl4-openssl-dev nlohmann-json3-dev libspdlog-dev zlib1g-dev

git clone https://github.com/QuantClaw/QuantClaw.git
cd QuantClaw && mkdir build && cd build
cmake .. && make -j$(nproc)
./quantclaw_tests   # 跑一遍测试
./quantclaw gateway # 启动

Bash

✍️ 写在最后

QuantClaw 的想法起得很简单------在 Discord 里聊着聊着,就想写个更轻、更快的 C++ 版本。从第一行代码到 324 个测试跑通,这个过程也是一次有趣的 AI 协同实践。

目前的版本是 v0.2.0,核心功能已经跑通。如果你也在找一个轻量、低开销的私人 AI 后端,欢迎尝试。

相关推荐
张张123y1 天前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
Linux实战笔记2 天前
压测后我对GraphQL vs REST API 设计改了灵活查询与性能权衡
性能优化·graphql·rest api·接口设计·n+1 问题
神一样的老师2 天前
WS63 嵌入式 SSD1306 OLED 驱动单元测试实战
单元测试·log4j
paopaokaka_luck2 天前
民宿管理系统 (AI民宿总结、协同过滤推荐算法、WebSocket 在线咨询、ECharts 经营分析、房态与结算联动、 民宿预订业务闭环)
java·人工智能·spring boot·websocket·数据分析·echarts·推荐算法
CesareCheung2 天前
高级软件测试工程师面试锦集
面试·单元测试·压力测试
云梦谭2 天前
WebSocket 协议详解:从 HTTP 握手到全双工通信
websocket·网络协议·http
2501_915918413 天前
在 Xcode 中运行和调试单元测试的完整指南
ide·vscode·macos·ios·单元测试·个人开发·xcode
光依旧3 天前
MCP实战手记(十一):MCP接飞书,从机器人到事件订阅的三层深度接入
websocket·事件驱动架构·大模型应用开发·spring ai·企业系统集成·mcp·飞书开放平台
ab1237683 天前
Spring WebSocket(STOMP)
笔记·websocket·springboot·stomp
hellojackjiang20114 天前
IM聊天不掉线?生产级WebSocket断线重连、心跳保活实战
websocket·网络协议·网络编程·html5·即时通讯·im