🦀 IdleClaw — 分布式 Ollama 推理网络

v1.2.1

IdleClaw 允许您共享闲置的 Ollama 推理能力到社区,或者在 API 信用用尽时使用社区的计算资源。它通过一个分布式网络,连接贡献者(共享 GPU/CPU 资源)和消费者(使用社区资源进行推理)。

1· 348·2 当前·2 累计
by @futurejunk·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/12
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
该技能的代码、脚本和运行指令与其声明的目的(共享/消费 Ollama 推理)一致,不请求无关的凭据也不执行意外的本地操作。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.2.12026/3/4

修复文档准确性:删除纯文本声明,准确记录 JSON 通信和工具中继流程。

可疑

安装命令

点击复制
官方npx clawhub@latest install idleclaw
🇨🇳 镜像加速npx clawhub@latest install idleclaw --registry https://cn.longxiaskill.com

技能文档

一个连接贡献者(共享 GPU/CPU 资源)和消费者(使用社区资源进行推理)的分布式推理网络。

模式

贡献 — 共享闲置推理能力

启动您的机器作为推理节点。您的本地 Ollama 模型将可供社区使用。
cd "$SKILL_DIR" && python scripts/contribute.py
这将连接到 IdleClaw 路由服务器,注册您的可用模型,并开始接受推理请求。按 Ctrl+C 停止。 要求: Ollama 必须运行并至少拉取一个模型。

消费 — 使用社区推理

将聊天请求发送到社区网络,而不是本地运行。
cd "$SKILL_DIR" && python scripts/consume.py --model  --prompt ""
将响应流式输出到 stdout。

状态 — 检查网络健康状况

查看有多少节点在线以及可用的模型。
cd "$SKILL_DIR" && python scripts/status.py

配置

变量默认值描述
IDLECLAW_SERVERhttps://api.idleclaw.com路由服务器 URL
OLLAMA_HOSThttp://localhost:11434本地 Ollama 端点

安全性

外部端点

此技能联系以下外部端点:
  • IdleClaw 路由服务器IDLECLAW_SERVER,默认 https://api.idleclaw.com
- 贡献模式:打开 WebSocket 连接注册为推理节点。发送:节点 ID、可用模型名称和推理响应。接收:推理请求(模型名称、聊天消息和可选工具架构)。 - 消费模式:发送 HTTP POST 到 /api/chat,包含模型名称和聊天消息。接收:通过 SSE 流式响应。 - 状态模式:发送 HTTP GET 到 /health/api/models。接收:服务器健康信息和可用模型列表。
  • 本地 OllamaOLLAMA_HOST,默认 http://localhost:11434
- 仅贡献模式:调用 Ollama 的 API 列出模型并运行推理。所有通信保持在本地。

数据处理

  • 无用户数据被持久化,无论是本地还是服务器端,超出活动会话。
  • 无凭据或 API 密钥 被要求或存储。
  • 所有通信都是文本 — 每个消息之间的服务器、节点和 Ollama 都是通过 WebSocket 或 HTTP 的 JSON 文本。
无二进制数据、文件上传、图像或可执行有效负载被传输。
  • 无本地代码执行 — 贡献者节点是一个中继。它将 JSON 推理参数转发到 Ollama 并流式返回 JSON 响应到服务器。节点不执行工具、不运行 shell 命令、也不访问文件系统。任何工具执行都是在服务器端处理响应验证后。
  • 聊天消息(文本字符串)从消费者传输到服务器再到贡献者节点进行推理,然后被丢弃。
  • 无遥测或分析 被收集。

在贡献模式下,路由服务器发送 JSON 推理请求到节点,节点转发到您的本地 Ollama 实例。Ollama 返回 JSON 文本响应,节点中继回服务器。贡献者可以将 IDLECLAW_SERVER 指向自托管实例。

在消费模式下,文本提示被发送到路由服务器,路由服务器将其路由到可用的贡献者节点。

清洗

客户端:
  • 在传递到 Ollama 之前验证推理参数:仅转发白名单键(modelmessagesstreamthinkkeep_aliveoptionstoolsformat)。未知键被剥离。
  • 请求的模型必须与节点注册的模型匹配 — 请求未注册模型被拒绝。
  • 强制执行消息限制:每个请求最多 50 消息,消息内容最多 10,000 个字符。
  • 仅转发已知响应字段回服务器(rolecontentthinkingtool_calls)。
  • 在消费模式下,模型名称通过严格模式验证(仅允许字母数字、冒号、句点、连字符)。在贡献模式下,请求的模型必须与节点从 Ollama 注册的模型匹配。
  • 服务器 URL 在使用前被验证为 HTTP/HTTPS URL。
  • 无 shell 命令从用户输入构造 — 所有执行仅限 Python。
  • 无本地文件被读取或访问 — 该技能仅与 Ollama 和路由服务器通信。

服务器端(路由服务器):

  • 基于 IP 的速率限制应用于所有端点:聊天(20 每分钟)、节点注册(5 每分钟)、一般(60 每分钟)。
  • 输入验证:每个请求最多 50 消息、10,000 个字符每条消息、64 个字符模型名称、角色限制为 userassistant
  • 输出清洗:响应内容在交付给消费者之前被剥离标记标签。
  • 节点注册限制:每 IP 最多 3 个节点、并发请求限制在 1-10 之间。
  • 工具执行防护:架构验证、参数类型检查、15 秒超时、每节点每分钟 20 次调用限制。
  • 服务器绑定到 localhost,只通过 Caddy 反向代理访问,自动 TLS。
  • 已进行红队测试,记录了发现和缓解措施(安全评估在 GitHub)。

安装

运行安装脚本设置 Python 依赖项:
cd "$SKILL_DIR" && bash install.sh

数据来源:ClawHub ↗ · 中文优化:龙虾技能库