OctoBot 项目研究站 · Tentacles 插件体系

OctoBot Tentacles:策略与交易所支持都靠它加载

OctoBot 本体是一个调度与交易引擎,真正的策略逻辑、交易所连接器与评估器都以 **tentacle** 的形式加载进来。它的源码真值放在 packages/tentacles/,而运行时用的 tentacles/ 目录是由源码导出并安装生成的——官方开发者文档明确写着「永远不要直接编辑 tentacles/,它会被覆盖」。理解这一层,后面看策略模式、交易所支持和二次开发才不会迷路。

形态:插件目录 + 安装命令源码真值:packages/tentacles/依据 CLAUDE.md 与 CONTRIBUTING.md(2026-09 核验)
源码真值改动只写 packages/tentacles/
导出与安装tentacles_manager 生成运行时目录
运行时目录tentacles/ 由生成得到,禁止手改
装载进引擎策略 / 交易所连接器 / 评估器
Tentacles 来源与安装路径示意(依据仓库结构与官方开发者文档整理,非官方图)。
What it is

OctoBot 的 Tentacles 是什么,它怎么加载策略与交易所

理解三件事就够:谁提供功能、放在哪、怎么进引擎。

它不是可选项,而是功能载体

官方贡献指南把原则写得很直白:任何与某个策略相关的改动都应该放进这个策略自己的 tentacle 里;任何与某个交易所相关的改动都应该放进该交易所对应的 tentacle 里。也就是说 OctoBot 本体负责通用调度,具体能力由 tentacle 提供。

源码真值与生成物是两回事

仓库里 packages/tentacles/ 才是真值;运行目录 tentacles/ 是导出与安装的产物。官方在开发者文档里明确警告不要直接改后者,否则下一次导出就把它冲掉——这是新手最容易踩的坑。

它有自己的仓库与版本来源

Tentacles 在 Drakkar-Software/OctoBot-tentacles 独立仓库维护,提交 PR 时针对其 dev 分支;用 Docker 部署时,镜像通过构建参数 TENTACLES_URL_TAG 指定 tentacles 版本来源,并把 tentacles/ 作为数据卷持久化。

Source vs runtime

OctoBot 的 Tentacles 源码与运行时目录有什么区别

在 OctoBot 里,这两条路径的区别决定了「你改的东西会不会生效」。

对比项packages/tentacles/tentacles/(运行时)注意点
身份源码真值(source of truth)导出并安装后的产物改错地方等于白改,且下次导出会被覆盖
能否直接编辑可以,改动都写这里不可以(官方明确禁止手改)改了运行时目录,重新导出即失效
生成方式由开发者维护由 tentacle-manager 导出并安装仓库里提供了对应 agent 定义来跑这个流程
安装命令python start.py tentacles installCLAUDE.md 的 PYTHONPATH 示例与 agent 说明中都出现该命令
Docker 场景镜像构建时按 TENTACLES_URL_TAG 取指定版本挂载为卷 /octobot/tentacles容器重建不会丢你安装的 tentacles(因为它是卷)
独立仓库上游在 OctoBot-tentacles 仓库维护安装时从指定来源取包给上游提 PR 时目标分支是 dev
导入路径约定tentacle 内优先用 tentacles.Services.Interfaces.*,失败回退裸导入运行时按安装后的路径解析同一 tentacle 包内所有文件应保持同一优先级顺序
一句话记住:想让改动生效,永远改 packages/tentacles/,然后跑一次导出+安装。直接改运行目录是这场游戏里最常见的无效操作。
Packages

OctoBot 的 16 个子包里,哪些和 Tentacles 有关

仓库把代码拆成 16 个 Pants 子包,其中两个直接服务于插件体系。

子包职责(据目录与官方文档判断)适用场景注意点
tentaclestentacle 源码与接口定义所在开发/修改扩展导出与安装后才会出现在运行时目录
tentacles_manager导出源码、安装 zip、生成 CCXT 交易所 tentacle跟进上游交易所变化官方把它封装成一个 agent 命令来调用
trading交易侧通用能力策略与订单相关改动具体策略仍应放进对应 tentacle
evaluators评估器(技术指标/社交数据一类输入)给策略提供信号与交易模式页提到的 RSI/均线/MACD、Trends/Reddit 对应
backtesting回测相关能力验证策略回测只在手动实例可用(见回测页)
agents自动化/代理相关能力node 模式的自动化组合与 node 模式页的多自动化编排相关
其余 10 个async_channelbinaryclientcommonscopyflownodeprotocolservicessync通信、协议、服务与同步等基础设施本站只据目录名说明其存在,未逐包核验实现细节
Install flow

怎么给 OctoBot 装好 Tentacles:四步流程

顺序与命令来自官方开发者文档;具体参数以仓库当前版本为准。

  1. 准备源码环境

    从源码路线起步(可执行文件与 Docker 镜像已自带 tentacles)。按 CLAUDE.md,需要 Python 3.13 与 Pants 2.30.0(用 scie-pants 引导安装),并把根目录与各 packages 子目录写进 PYTHONPATH

  2. 安装 tentacles

    执行 python start.py tentacles install:它从指定来源取 tentacles 包并安装到运行时目录。装完后 PYTHONPATH 需要额外加入 packages/tentacles

  3. 验证加载结果

    检查运行时 tentacles/ 目录下是否出现预期扩展;在界面里能看到对应策略模式或交易所,说明装载成功。预期:启动日志不再报缺少 tentacle。

  4. 后续更新与生成

    上游交易所接口变化时,用 tentacles_manager 重新生成交易所 tentacle;改了 packages/tentacles/ 后同样要重新导出并安装,改动才会生效。

Docker 场景不必手动装:镜像构建时会按 TENTACLES_URL_TAG 取对应版本,并把 /octobot/tentacles 挂成数据卷——所以你更新容器镜像后,之前安装/生成的 tentacles 仍在卷里。
Misunderstandings

OctoBot Tentacles 的五个常见误解有哪些

这些坑都写在官方文档里,只是不容易被注意到。

误解实际情况后果怎么避免
「改 tentacles/ 里的文件就行」运行目录是生成物,官方明确禁止直接编辑下次导出/安装后改动消失只改 packages/tentacles/,再重跑导出+安装
「策略开箱就有,不用装」策略以 tentacle 形式加载;可执行文件/镜像是打包好的,源码路线要自己装源码启动后界面里看不到预期模式先跑一次 tentacles install
「PYTHONPATH 无所谓」官方要求把根目录与各 packages 子目录都写进去,且必须绝对路径构建子进程从 tentacle 子目录运行时报导入失败按 CLAUDE.md 的完整示例导出 PATH
「我加了新依赖,直接装包就好」贡献指南要求新依赖要么先开 issue 讨论,要么做成可选导入PR 可能因依赖策略被拒先读贡献指南的 Adding dependencies 一节
「交易所支持是本体写死的」交易所连接器同样由 tentacle 提供,可从 CCXT 生成上游接口变化后旧连接器可能失效用 tentacles_manager 重新生成(见交易所页)
FAQ

OctoBot Tentacles 常见问题:怎么装、改哪里

Tentacles 和普通插件有什么区别?

概念上就是插件,但 OctoBot 把「策略」「交易所连接器」「评估器」等不同粒度的扩展都统一到 tentacle 这一形态,并用导出+安装的流程管理它们,因此有了源码真值与运行时目录之分。以官方开发者文档为准。

我该改哪个目录?

packages/tentacles/(若你从上游仓库做贡献,则改 OctoBot-tentacles 仓库对应分支)。运行时 tentacles/ 是产物,官方原话是「永远不要直接编辑」,改了也会被覆盖。

安装命令是什么?需要什么前置?

命令行是 python start.py tentacles install。源码路线下前置包括 Python 3.13、Pants 2.30.0 与正确的 PYTHONPATH;Docker 与可执行文件路线由官方打包流程处理。具体以仓库当前版本文档为准。

Docker 部署要自己装 tentacles 吗?

通常不用:镜像构建时按 TENTACLES_URL_TAG 取指定版本的 tentacles,并把 /octobot/tentacles 作为数据卷,所以更新镜像也不会丢你已安装的扩展。

新增 tentacle 会被官方合并吗?

官方欢迎 PR,但要求:改动针对 dev 分支、配套 pytest 用例、PEP8(行长 120),且与具体加密货币/交易对绑定的改动会被拒绝。本站不代做承诺,是否合并以官方评估为准。

本站验证过这些流程吗?

没有。本机未安装运行 OctoBot,本站所有描述均来自官方仓库与开发者文档,未做实测;页面只做证据整理,具体以仓库当前版本为准。

理解了扩展机制,再看 OctoBot 加载了哪些交易模式

六类交易模式与它们的依赖,都在交易模式页里逐条展开。