DeepTrade / docs
开发者手册

开发者手册

DeepTrade 插件开发者指南 — 架构、第一个插件、CLI 透传、数据隔离、LLM 调用、Notify API、注册表发布

如果你想给 DeepTrade 写一个新策略新推送渠道,本手册带你从架构理解到提交注册表 PR 全流程跑通。

设计哲学一句话

框架持有运行时与审计;业务全部在插件包里。新增能力 = 新插件,零框架改动。

这一句话推导出 9 项硬约束:

#约束设计理由
1框架不持有业务表tushare_* / llm_calls 是按 plugin_id 维度的审计,不是业务数据
2插件全部 DDL 走 migrations + sha256 校验防 schema 漂移、可追溯、可 rollback 至插件粒度
3llm_tools 永远 False(Literal)强制 JSON mode + Pydantic,不允许 function call 形式的间接幻觉
4validate_static(ctx) 不允许联网插件加载阶段自检必须确定性,否则 install pipeline 不可重试
5CLI 纯透传给 dispatch(argv)框架不预解析插件子命令,插件 CLI 自由度 = Click 全开
6SemVer 强约束等价 → no-op;候选低 → 拒绝(无 migration rollback 模型)
7Channel 失败隔离一个推送渠道挂掉不阻塞其他渠道
8tables 仅声明名 + purge 策略,不嵌 DDL表所有权可反查,purge 行为可预测
9Notification payload 语义化Channel 自渲染 IM 协议,框架不预渲染 markdown

你将读到

架构概览

click.Group 透传机制、Plan A 数据隔离、单写 DuckDB、ConfigService 4 层、AsyncDispatchNotifier、保留命令名。

开发第一个插件

最小可运行项目骨架,用本地路径安装做完整回环测试。

Manifest 全字段

deeptrade_plugin.yaml 的 Pydantic schema 详解,每个字段都标注必填/默认/正则。

CLI 透传与 Click 子命令

dispatch(argv: list[str]) -> int 契约 + Click 子命令实战。

数据隔离与 migrations

migration 文件命名、sha256 计算命令、表所有权反查、purge 行为。

LLMManager 调用

LLMManager.get_client(name=, plugin_id=, run_id=) 签名 + JSON mode + Pydantic 强约束。

Notify API

顶层 notify / notification_session API + NotificationPayload 结构。

发布到注册表

PyPI 发布 + 提交 DeepTradePluginOfficial/registry/index.json PR。

你需要的前置知识

  • Python 3.11+、Click(或熟悉 argparse / typer)
  • DuckDB SQL 基础(写 migration)
  • Pydantic v2(schema 定义)
  • 一点 Git/GitHub Release 流程

关键词:开发者手册、插件开发、SDK、Plugin、ChannelPlugin、deeptrade_plugin.yaml、migrations、sha256、注册表