用 SOLO + Agent Skills 加速开发 OpenBB 通达信数据扩展插件
摘要 本文介绍了金融科技开发者使用 Trae IDE + SOLO 在 9 天内完成 OpenBB-TDX 插件开发的经验。通过创新的 Agent Skills 预训练策略,将 OpenBB 开发规范和 TdxQuant API 知识预先注入 SOLO,显著提升了开发效率。项目实现了通达信量化接口与 OpenBB 生态的深度集成,涵盖 A 股/港股行情、财报等核心功能。开发过程分为知识沉淀、框架搭
一、摘要
我是一名金融科技领域的开源开发者(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.py、router.py、models/、utils/) - Fetcher 三方法模式的完整代码模板(
transform_query→extract_data→transform_data) - TdxQuant API 完整参考文档(
get_market_data、get_market_snapshot、get_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-providerSkill 中的模板,自动生成了标准化的项目骨架 - 包括
provider.py(Provider 注册)、router.py(路由定义)、models/(数据模型)等核心文件 - 同时配置了
pyproject.toml、AGENTS.md、CLAUDE.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-testsSkill 自动生成了兼容性评估测试脚本 - 完善了中文 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 要求英文字段(
date、open) - 解决: 在 Skill 中预置了完整的字段映射规则,SOLO 开发时自动使用
__alias_dict__处理
坑 3:缓存策略选择
- 历史行情数据适合 TableCache(支持日期范围查询),财务报表适合 BlobCache(整体获取)
- 解决: 在
openbb-data-providerSkill 中详细对比了两种缓存策略的适用场景,SOLO 能自动做出正确选择
坑 4:股票代码格式不统一
- 不同数据源使用不同格式(
600519、600519.SH、SH600519) - 解决: 统一使用
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 在流程中做了什么
- 知识沉淀阶段: 帮我整理 OpenBB 架构文档和 TdxQuant API 参考,形成结构化的 Agent Skill
- 框架搭建阶段: 根据 Skill 模板自动生成标准化项目骨架
- 功能开发阶段: 利用 Skill 中的 API 文档和代码模板,快速实现各个 Fetcher
- 测试阶段: 利用
openbb-testsSkill 自动生成兼容性评估测试 - 文档阶段: 自动生成中英文 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
更多推荐




所有评论(0)