DeepTrade / docs
用户手册

安装、升级、卸载插件

通过 deeptrade plugin install/upgrade/uninstall 命令管理插件;支持注册表短名、GitHub URL、本地路径三种来源;--ref 锁版本,SemVer 强制单向升级

DeepTrade 的插件安装走单一命令

$ deeptrade plugin install <SOURCE>

<SOURCE> 框架会按下列优先级顺序自动判断:

注册表短名

最常见路径。例如:

$ deeptrade plugin install limit-up-board

框架去注册表查 plugin_id == "limit-up-board" 对应的 repo + subdir,然后 git clone 到临时目录再装。

Git 仓库 URL

适合自有插件或非官方仓库:

$ deeptrade plugin install https://github.com/myuser/my-plugin.git

也支持 SSH 形式:git@github.com:user/repo.git

本地路径

开发插件时最常用:

$ deeptrade plugin install ./my-plugin/

会把目录原样 copy 到 ~/.deeptrade/plugins/installed/<plugin_id>/<version>/

锁定版本:--ref

来源是 Git 时(包括注册表短名,因为框架内部转 git)可以指定分支 / tag / sha:

$ deeptrade plugin install limit-up-board --ref limit-up-board-v0.6.1
$ deeptrade plugin install https://github.com/myuser/my-plugin.git --ref dev

不带 --ref 时按注册表声明的 tag_prefix 自动选最新 release。

跳过确认:-y

CI / 脚本场景:

$ deeptrade plugin install limit-up-board -y

跳过"是否真的安装?"确认。

安装时框架做了什么?

按设计文档 §架构 的 install 管道,原子性保证:

1. 解析 manifest

deeptrade_plugin.yaml,校验 plugin_id 不是保留字(init / config / plugin / data),版本与 min_framework_version 兼容,llm_tools=false

2. 校验 migrations sha256

manifest 声明的每条 migration 文件都校验 checksum,任一不匹配立即 fail(不会动数据库)。

3. copy 文件 + 写迁移

在一个 DuckDB 事务里:apply migrations、INSERT 到 plugins / plugin_tables / plugin_schema_migrations。事务失败 → 删 copy。

4. 加载 entrypoint + validate_static

框架 import 入口模块,调 validate_static(ctx)禁止访问网络 —— 仅做静态校验)。失败 → 回滚(drop tables、删注册条目、删 copy)。

列出已装

$ deeptrade plugin list

输出每个插件的 plugin_id / 版本 / 类型 / enabled 状态。

升级

$ deeptrade plugin upgrade limit-up-board

按 SemVer 比较逻辑:

候选版本 vs 已装版本行为
相等退出码 0,输出 UpgradeNoop改文件
候选更高仅 apply 未应用的 migrations + 替换文件
候选更低拒绝(退出码 2)。框架不支持降级,因为 migrations 没有 rollback 语义

降级保护:如果你确实需要回退到旧版本,先 uninstallinstall --ref <旧 tag>。这会让你显式面对"老版本可能用旧表结构 / 缺新列"这个事实。

启用 / 禁用

channel 类型插件默认装完后就已启用。如果想临时关掉某个 channel(比如调试时不想推消息):

$ deeptrade plugin disable stdout-channel

恢复:

$ deeptrade plugin enable stdout-channel

enabled 字段在 plugins 表里。strategy 类型插件没有这个开关概念(它们是被显式调用的子命令)。

卸载

$ deeptrade plugin uninstall limit-up-board

默认行为:

  • 删除 ~/.deeptrade/plugins/installed/limit-up-board/ 目录
  • plugins / plugin_tables / plugin_schema_migrations 注销
  • 保留插件创建的业务表(数据不删)

如果要连数据一起清理

$ deeptrade plugin uninstall limit-up-board --purge

--purge 会把插件声明的所有表都 drop。

--purge 不可恢复。如果你想"暂时不用,但保留分析数据",要带 --purge

下一步

运行策略

关键词:plugin install、upgrade、uninstall、--ref、--purge、-y、注册表、Git URL、本地路径、SemVer、降级、enable、disable、enabled