一、摘要

我是一名金融科技领域的开源开发者(FinAnalyzer),致力于将全球领先的开源金融数据平台 OpenBB 引入中国市场。本次实践中,我使用 Trae IDE + SOLO,通过创新的 Agent Skills 预训练策略,仅用 9 天(4月16日-4月24日) 完成了 openbb_tdx 项目的框架搭建与核心功能开发——这是一个将通达信 TdxQuant 官方量化接口深度集成到 OpenBB 生态系统的数据扩展插件,覆盖 A 股/港股历史行情、实时报价、财务报表、分红数据、关键指标等核心能力,累计 29 次提交

二、背景

2.1 我的角色与挑战

我此前已成功开发了两个 OpenBB 中国市场数据扩展插件:openbb_akshare(对接 AKShare)和 openbb_tushare(对接 Tushare)。2025年底,通达信官方推出了 TdxQuant Python 量化接口,提供免费、高质量、低延迟的 A 股/港股实时与历史数据。TdxQuant能够提供高质量的数据,我想尽快开发第三个扩展插件 openbb_tdx,将这条全新的数据通道接入 OpenBB 生态。

核心挑战:

  • OpenBB Provider Framework 有严格的架构规范(Fetcher 三方法模式、标准化数据模型、缓存策略等),学习曲线陡峭
  • TdxQuant 是全新的 Python SDK,API 文档需要消化整理
  • 需要处理通达信中英文字段映射、股票代码格式转换、缓存策略选型等复杂问题
  • 开发过程中需要频繁查阅 OpenBB 官方文档、TdxQuant API 文档和已有项目的参考实现

2.2 为什么选择 SOLO + Agent Skills

在正式开发之前,我面临一个效率瓶颈:SOLO 虽然强大,但每次让它开发 OpenBB Provider 的新 Fetcher 时,都需要反复解释架构规范、字段映射规则、缓存策略等上下文信息。这些「重复教学」消耗了大量时间。

我的解决方案是:先开发两个 Agent Skills,让 SOLO 在后续开发中「自带知识库」,从而大幅提升开发效率。

三、实践过程

3.1 任务拆解策略

我将整个项目开发分为三个阶段:

阶段一:知识沉淀(Day 1-2)→ 开发 Agent Skills
阶段二:框架搭建(Day 3-4)→ 项目骨架 + 基础设施
阶段三:功能迭代(Day 5-9)→ 逐个实现数据接口

3.2 阶段一:开发 Agent Skills(核心创新点)

这是本次实践中最关键的步骤。我在正式写业务代码之前,先让 SOLO 帮我开发了两个 Agent Skills:

Skill 1:openbb-data-provider(OpenBB 数据提供者开发指南)

目的: 将 OpenBB Provider Framework 的完整开发知识注入 SOLO,使其在后续开发中无需重复解释架构规范。

包含内容:

  • OpenBB 架构概览(Provider → Fetcher → Router 数据流)
  • 项目目录结构模板(provider.pyrouter.pymodels/utils/
  • Fetcher 三方法模式的完整代码模板(transform_queryextract_datatransform_data
  • TdxQuant API 完整参考文档(get_market_dataget_market_snapshotget_financial_data_by_date 等全部接口的参数说明和代码示例)
  • 缓存策略选型指南(BlobCache vs TableCache 的使用场景和代码模式)
  • TdxQuant vs AKShare 对比分析表,帮助 SOLO 做出正确的技术决策

关键 Prompt 示例:

请帮我创建一个 Agent Skill,用于指导 OpenBB 数据提供者的开发。
需要包含:OpenBB Provider Framework 架构说明、Fetcher 类实现模式、
TdxQuant API 参考文档、缓存策略指南。
参考文档:https://docs.openbb.co/odp/python/reference
Skill 2:openbb-tests(OpenBB 数据扩展兼容性评估)

目的: 自动化测试脚本的生成与数据兼容性评估,让 SOLO 在开发每个新接口后能快速生成对应的测试代码。

包含内容:

  • 测试脚本自动生成框架(基于 pytest 规范)
  • 多 Provider 数据兼容性对比评估逻辑
  • 字段完整性验证、数据类型校验、响应时间测量
  • 跨数据源对比报告生成(tdxquant vs akshare vs tushare vs yfinance)
  • CI/CD 集成规范

关键 Prompt 示例:

请帮我创建一个 Agent Skill,用于自动化生成 OpenBB 数据扩展的测试脚本。
需要支持多 Provider 对比测试,生成详细的兼容性评估报告。

Skill 目录结构:

.trae/skills/
├── openbb-data-provider/
│   ├── SKILL.md          # 核心知识文档(含完整 API 参考)
│   ├── assets/           # 资源文件
│   ├── references/       # 参考文档
│   └── scripts/          # 辅助脚本
└── openbb-tests/
    ├── SKILL.md          # 测试自动化知识文档
    ├── assets/
    ├── references/
    └── scripts/

3.3 阶段二:框架搭建(Day 3-4)

有了 Agent Skills 的知识加持,SOLO 在框架搭建阶段表现出了极高的效率:

4月16日 - 项目初始化

commit: feat: 添加OpenBB TdxQuant扩展和测试文件
commit: docs(openbb-data-provider): 在文档中添加openbb_akshare示例提供者
  • SOLO 根据 openbb-data-provider Skill 中的模板,自动生成了标准化的项目骨架
  • 包括 provider.py(Provider 注册)、router.py(路由定义)、models/(数据模型)等核心文件
  • 同时配置了 pyproject.tomlAGENTS.mdCLAUDE.md 等项目文档

4月17日 - 核心接口开发

commit: feat(equity_historical): 添加TdxQuant股票历史价格数据支持
commit: feat(equity_quote): 添加股票实时报价功能
commit: feat: 添加股票交易所名称映射功能
  • SOLO 利用 Skill 中预置的 TdxQuant API 文档,快速实现了历史行情和实时报价两个核心 Fetcher
  • 自动处理了通达信中英文字段映射(通过 __alias_dict__
  • 正确选择了 TableCache 作为历史行情的缓存策略

3.4 阶段三:功能迭代(Day 5-9)

4月18日 - 基本面数据

commit: feat(equity): 添加股票基本信息获取功能
commit: feat(equity_search): 添加TdxQuant股票搜索功能
commit: feat(equity_dividends): 新增通达信股票历史分红数据功能
commit: Updated TdxQuant API docs
commit: feat(equity_key_metrics): 新增通达信关键指标数据获取功能
  • 一天内完成了 5 个功能模块的开发
  • SOLO 根据 Skill 中的 API 参考,独立完成了分红数据、关键指标等复杂接口的实现

4月19日 - 搜索重构与财务报表

commit: feat(equity_search): 添加股票搜索缓存支持和市场自动检测功能
commit: feat(equity_search): 重构股票搜索功能并添加名称查询支持
commit: feat(财务报告): 添加资产负债表、利润表和现金流量表功能
commit: feat(router): 添加TdxQuant股票相关接口
  • 完成了财务报表三大表的实现(资产负债表、利润表、现金流量表)
  • 股票搜索功能经过两次迭代优化,增加了缓存支持和名称模糊查询

4月20-22日 - 文档与测试完善

commit: feat: 更新项目版本至1.0.0并添加中文文档
commit: docs: 添加文档图片资源
commit: chore(license): add GNU Affero General Public License v3.0
commit: feat(openbb-tests): add data extension compatibility evaluation skill
commit: docs: 添加AKShare与OpenBB股票信息字段映射文档
  • SOLO 利用 openbb-tests Skill 自动生成了兼容性评估测试脚本
  • 完善了中文 README 文档和字段映射文档

4月23-24日 - 最终完善

commit: docs: 更新示例代码中的股票数据和路径信息
commit: chore(deps): update python version dependency range
commit: Merge pull request #1 from shugaoye/master

3.5 踩过的坑与解决方案

坑 1:TdxQuant SDK 只支持 Windows

  • 通达信的 tqcenter.tq 模块依赖 Windows DLL,在 macOS/Linux 上无法运行
  • 解决: 在 AGENTS.md 中明确标注 Windows-only 限制,测试中使用 unittest.mock 模拟 TdxQuant 客户端

坑 2:通达信字段与 OpenBB 标准模型的映射

  • 通达信返回中文字段名(如「日期」「开盘价」),而 OpenBB 要求英文字段(dateopen
  • 解决: 在 Skill 中预置了完整的字段映射规则,SOLO 开发时自动使用 __alias_dict__ 处理

坑 3:缓存策略选择

  • 历史行情数据适合 TableCache(支持日期范围查询),财务报表适合 BlobCache(整体获取)
  • 解决:openbb-data-provider Skill 中详细对比了两种缓存策略的适用场景,SOLO 能自动做出正确选择

坑 4:股票代码格式不统一

  • 不同数据源使用不同格式(600519600519.SHSH600519
  • 解决: 统一使用 normalize_symbol() 工具函数进行格式转换

四、成果展示

4.1 项目仓库

GitHub 仓库:https://github.com/finanalyzer/tdx

4.2 开发数据

指标 数据
开发周期 9 天(4月16日 - 4月24日)
总提交数 29 次
核心功能模块 8 个(历史行情、实时报价、股票搜索、基本信息、分红数据、关键指标、财务报表、板块数据)
Agent Skills 2 个(openbb-data-provider、openbb-tests)
测试覆盖 自动化兼容性评估 + 单元测试

4.3 核心功能一览

from openbb import obb

# 1. 历史行情数据
df = obb.equity.price.historical(
    symbol="600028", start_date="2024-01-01",
    end_date="2025-12-31", provider="tdxquant"
).to_dataframe()

# 2. 实时行情报价
quote = obb.equity.price.quote(symbol="600519.SH", provider="tdxquant")

# 3. 股票搜索
results = obb.equity.search(query="茅台", provider="tdxquant")

# 4. 财务报表
income = obb.equity.fundamental.income(
    symbol="600519.SH", period="annual", provider="tdxquant"
)

4.4 Agent Skills 产出

两个 Agent Skills 已作为项目的一部分开源,其他开发者可以直接复用:

  • .trae/skills/openbb-data-provider/ — OpenBB 数据提供者开发完整指南
  • .trae/skills/openbb-tests/ — 数据扩展兼容性自动化评估框架

五、效果与总结

5.1 提效分析

对比维度 传统方式(无 Skills) 使用 Agent Skills 提升幅度
单个 Fetcher 开发时间 约 2-3 小时 约 30-45 分钟 约 4x
上下文重复解释次数 每次开发都要解释 仅在 Skill 开发时解释一次 接近 0
代码规范性 需要人工审查 SOLO 自动遵循 Skill 中的规范 显著提升
测试脚本编写 手动编写 Skill 自动生成 从无到有

5.2 SOLO 在流程中做了什么

  1. 知识沉淀阶段: 帮我整理 OpenBB 架构文档和 TdxQuant API 参考,形成结构化的 Agent Skill
  2. 框架搭建阶段: 根据 Skill 模板自动生成标准化项目骨架
  3. 功能开发阶段: 利用 Skill 中的 API 文档和代码模板,快速实现各个 Fetcher
  4. 测试阶段: 利用 openbb-tests Skill 自动生成兼容性评估测试
  5. 文档阶段: 自动生成中英文 README 和字段映射文档

5.3 可复用的方法论

本次实践总结出了一套 「Skill-First」开发方法论

1. 识别领域知识 → 哪些知识会在开发中反复使用?
2. 沉淀为 Agent Skill → 让 SOLO 一次性学习
3. 迭代开发 → SOLO 基于已有知识高效开发
4. 持续完善 Skill → 随着项目进展更新 Skill 内容

这个方法论特别适合以下场景:

  • 框架/插件开发:有严格的架构规范需要遵循
  • 多模块项目:各模块共享相同的设计模式和编码规范
  • API 集成项目:需要频繁查阅外部 API 文档
  • 团队协作:Skill 可以作为团队知识的载体共享给其他成员

5.4 总结

通过 Trae IDE + SOLO 的组合,配合创新的 Agent Skills 预训练策略,我在 9 天内完成了 openbb_tdx 项目的核心开发。Agent Skills 的引入本质上是将「领域知识」前置注入到 AI 编程助手中,将原本分散在每次对话中的上下文解释工作,转化为一次性的知识沉淀。这不仅大幅提升了开发效率,更重要的是保证了代码质量和架构一致性。

对于类似的框架/插件开发项目,我强烈推荐这种 「先教 SOLO,再让 SOLO 干活」 的工作模式。


项目链接: https://github.com/finanalyzer/tdx

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐