这份文档面向第一次接触 CheapClaw 的用户,目标是两件事:
- 让你从零开始把系统跑起来
- 让你知道后续怎么加 Bot、改配置、接 Telegram 或飞书
如果你只看最短路径,直接看“5 分钟上手”。
CheapClaw 是一个多 Bot 调度系统。它本身不是某一个聊天机器人,而是一套可以同时管理多个 Bot 的服务层。
它现在支持:
localweb:本地网页聊天,适合先把系统跑起来telegramfeishuwhatsappdiscordqq(通过 OneBot v11 网关)wechat(通过 OneBot v11 网关)
如果你只是想先验证系统能不能工作,推荐第一步先用 localweb。
最低要求:
- Python
3.10+ - 一套 LLM 配置
- 最少只需要:
- 一个
base_url - 一个
api_key - 一个
model
- 一个
- 最少只需要:
如果你只有一个 api_key 和一个 base_url,完全够用。
CheapClaw 默认就是“一套 LLM 配置给所有 Bot 共用”,后面你再按需拆分。
发布后,用户可以直接安装:
python -m pip install -U cheapclaw如果你现在是从项目目录直接使用,执行:
cd /Users/chenglin/Desktop/research/claw_dev/cheapclaw
python -m pip install -U -e .cheapclaw config --interactive默认目录如下,直接回车即可:
manifest:~/cheapclaw/fleet.manifest.jsonruntime_root:~/cheapclaw/runtimefleet_config_path:~/cheapclaw/runtime/fleet.generated.jsonllm_config_path:~/cheapclaw/runtime/config/llm_config.yaml
在交互配置里,按下面填就行:
llm.base_url: 你的模型服务地址llm.api_key: 你的密钥llm.model: 模型名
注意:
- 推荐直接填写完整模型标识,例如:
openai/gpt-4oopenai/google/gemini-3-flash-preview- 某些场景下也可能是
openrouter/openai/gpt-4o
- 如果你输入的是不带任何前缀的裸模型名,例如
gpt-4o,脚本会自动补成openai/gpt-4o - 如果你输入的模型名本来就带前缀,脚本会原样保留,不会重复拼接
- 这份 LLM 配置会被所有 Bot 共用
第一次建议先建一个 localweb Bot。
原因很简单:
- 不需要第三方平台凭据
- 不需要先处理 Telegram / 飞书平台配置
- 可以直接在网页上验证机器人是否可工作
cheapclaw up启动后打开:
http://127.0.0.1:8787/dashboard
这是统一控制台,不依赖某个单独 Bot。
默认运行目录:
~/cheapclaw/fleet.manifest.json~/cheapclaw/runtime/
每个 Bot 的运行目录:
~/cheapclaw/runtime/<bot_id>/cheapclaw/
常见文件:
- Bot 循环日志:
~/cheapclaw/runtime/<bot_id>/cheapclaw/runtime/service.loop.log
- Bot 服务日志:
~/cheapclaw/runtime/<bot_id>/cheapclaw/runtime/cheapclaw_service.log
- 统一控制台日志:
~/cheapclaw/runtime/.fleet_web/fleet_web.log
cheapclaw init
cheapclaw config --interactive
cheapclaw prepare说明:
init:只创建默认 manifest 模板config --interactive:推荐,交互式填配置prepare:把 manifest 同步成每个 Bot 真正运行需要的文件
cheapclaw up
cheapclaw start
cheapclaw stop
cheapclaw restart说明:
up:适合第一次启动,一般就用它start:启动所有启用的 Botstop:默认会停止所有 Bot,同时停止统一控制台restart:重启全部
如果你希望只停 Bot,不停网页控制台:
cheapclaw stop --no-web-consolecheapclaw list-bots
cheapclaw status
cheapclaw status --bot-id bot_1
cheapclaw logs --bot-id bot_1
cheapclaw logs --bot-id bot_1 --kind service
cheapclaw logs --bot-id bot_1 --lines 300cheapclaw add-bot
cheapclaw start-bot --bot-id bot_2
cheapclaw stop-bot --bot-id bot_2
cheapclaw reload-bot --bot-id bot_2 --prepare-first说明:
add-bot默认会:- 写入 manifest
- 自动
prepare - 自动启动新 Bot
- 配置改完后,推荐用
reload-bot --prepare-first
cheapclaw bot-agent-system add /path/to/agent_system.zip --bot-id bot_2
cheapclaw bot-agent-system add /path/to/agent_system.zip --bot-id bot_2 --reload-after
cheapclaw bot-agent-system add /path/to/agent_system.zip --global说明:
--bot-id:只安装到某一个 Bot 的运行目录--reload-after:安装后立刻重载该 Bot--global:安装到项目共享assets/agent_library,之后执行cheapclaw prepare或cheapclaw reload-bot --bot-id <id> --prepare-first生效- 如果你不小心把命令打成
cheapclaw bot-agent-sysyem add ...,现在也兼容这个拼写
cheapclaw web
cheapclaw web-start
cheapclaw web-stop
cheapclaw web-status说明:
web:前台启动网页控制台,适合调试web-start:后台启动web-stop:停止网页控制台web-status:查看控制台状态
地址:
http://127.0.0.1:8787/dashboard
这个页面现在是整个系统的统一入口,可以做:
- 修改 manifest
- 修改 LLM 配置
- 设置代理
- 查看系统状态
- 查看 Bot 列表
- 新增 / 编辑 / 删除 Bot
- 启动 / 停止 / 重载某个 Bot
- 查看日志
- 使用
localweb建本地会话、建群、@bot_id对话
推荐使用方式:
- 先用 CLI 跑起系统
- 后续配置和管理尽量放到 Dashboard 上做
最简单的做法是:
- 运行:
cheapclaw config --interactive- 填:
llm.base_urlllm.api_keyllm.model
- 之后所有 Bot 都共用这一个
llm_config.yaml
这对绝大多数用户已经足够。
什么时候才需要多套 LLM 配置?
- 你希望 supervisor 和 worker 用不同模型
- 某个 Bot 要单独走另一家供应商
- 你想把便宜模型和强模型分开用
在这之前,不要过度设计,先共用一套。
CheapClaw 的 Telegram 方式是轮询,不需要你自己先架 webhook。
去 Telegram 的 @BotFather:
/newbot- 创建机器人
- 拿到形如下面的 token:
123456789:AA...
方式一:交互式命令
cheapclaw add-bot然后在 channel 里选 telegram,填:
bot_iddisplay_nametelegram.bot_tokentelegram.allowed_chats
说明:
allowed_chats可以先留空- 留空表示不额外做 chat 白名单过滤
方式二:网页添加
- 打开
http://127.0.0.1:8787/dashboard - 新增 Bot
channel选telegram- 填 token 并保存
cheapclaw reload-bot --bot-id <your_telegram_bot_id> --prepare-first或者如果还没启动:
cheapclaw start-bot --bot-id <your_telegram_bot_id>如果日志里出现:
404 Client Error ... api.telegram.org/bot.../getUpdates
基本就是 bot_token 错了,重新从 BotFather 复制完整 token。
CheapClaw 当前推荐飞书使用 long_connection 模式。
代理说明:
- 如果
http_proxy / https_proxy / all_proxy留空,CheapClaw 不会为 bot 进程启用代理。 - 从当前版本开始,bot 进程不会再隐式继承你外层 shell 里的代理变量;是否走代理以 manifest 里的
proxy_env为准。 - 如果你显式配置了
all_proxy=socks5://...,环境里需要有python-socks。
优点:
- 不需要公网 webhook
- 本机启动后即可接消息
去飞书开放平台创建一个应用,拿到:
app_idapp_secret
cheapclaw add-botchannel 选 feishu,填:
feishu.mode: 推荐long_connectionfeishu.app_idfeishu.app_secretfeishu.verify_token:可留空feishu.encrypt_key:可留空
cheapclaw reload-bot --bot-id <your_feishu_bot_id> --prepare-first除了 CheapClaw 本地配置外,你还需要在飞书平台侧确认:
- 机器人或应用已经启用
- 有接收消息相关权限
- 已经被加入你要测试的群或会话
如果这些没做好,本地服务是启动成功的,但不会收到消息。
需要:
access_tokenphone_number_idverify_token
需要:
bot_token- 可选
intents
说明:
- 当前实现是原生 Discord Gateway 收消息 + REST 发消息
- 适合继续推进,但建议在你自己环境先做一轮真实联调再公开给用户
这两个当前都走 OneBot v11 网关桥接。
需要:
onebot_api_base- 可选
onebot_access_token - 可选
onebot_post_secret - 可选
onebot_self_id
说明:
- 这不是官方原生 SDK 路线
- 更准确地说,是“CheapClaw 对接 OneBot 网关”,不是直接自己实现 QQ / 微信协议
监控任务提示词补丁文件:
~/cheapclaw/runtime/<bot_id>/cheapclaw/supervisor_task/system-add.md
说明:
system-add.md适合写长期有效的附加规则、经验和用户风格偏好- CheapClaw 自己维护的运行时内容会写在
<cheapclaw_system_结构>...</cheapclaw_system_结构>区块中 - 这个区块会被系统按区块更新,但区块外的内容会保留,适合你或智能体自行补充短备注
- 建议保持简短,只写稳定规则,不要写临时状态
改完之后执行:
cheapclaw reload-bot --bot-id <bot_id> --prepare-first如果你后面把网页编辑能力继续完善,也可以改成从 Dashboard 直接编辑。
目前最稳妥的方式仍然是改文件后 reload-bot。
说明默认配置文件不存在。
执行:
cheapclaw config --interactive说明 manifest 里还有占位符还没填完。
你需要补齐:
runtime_rootfleet_config_pathllm_config_path- 对应渠道的凭据
先看:
cheapclaw status
cheapclaw logs --bot-id <bot_id>重点确认:
- bot 进程是否 alive
- channel 是否配置正确
- 本地会话里是否真的
@了目标 bot
一般是忘了 prepare 或 reload-bot。
推荐直接执行:
cheapclaw reload-bot --bot-id <bot_id> --prepare-first从“安装链路”角度,当前已经可以继续往 PyPI 推进:
- wheel 构建已通过
- 从 wheel 安装后,CLI 入口、核心模块、资源文件都能正常落地
但从“稳定性预期”角度,我建议按下面理解:
localweb / telegram / feishu:可以作为首发主路径discord:可放进首发,但建议标成 betaqq / wechat / whatsapp:建议明确标注为实验性或桥接模式
原因不是它们不能用,而是:
qq / wechat依赖外部 OneBot 网关discord / qq / wechat这几条链路还需要更多真实环境联调- 控制台与调度主链路当前已经统一围绕 pending monitor instructions、会话历史与 task 状态工作
如果你是第一次用:
- 先
cheapclaw config --interactive - 先建一个
localwebBot - 运行
cheapclaw up - 打开
http://127.0.0.1:8787/dashboard - 确认本地网页聊天正常
- 再去接 Telegram 或飞书
这是最稳、最省时间的路径。