FinBuddy 通达信技能与Swarm优化
· FinBuddy
今日进展
- 新增通达信技能模块:K 线获取、板块行情、资金流向、实时报价推送
- Swarm 系统优化:并行执行策略改进,减少 Agent 间等待时间
- 流式处理增强:支持多 Agent 并行流式输出,前端实时渲染
- 新增产业深度文档和研究数据获取策略
- 拆分 .trae/rules 规则文件,确保每个文件不超过 1000 字符
关键代码/伪代码
通达信技能 — 工具定义
# 通达信技能:让 Agent 能直接读取本地 TDX 数据
# 不依赖第三方 API,速度快且稳定
TDX_SKILLS = {
"tdx_kline": {
"name": "获取K线数据",
"description": "从通达信获取股票日线/分钟线K线数据",
"parameters": {
"stock_code": "股票代码,如 600519",
"period": "周期:daily/weekly/minute",
"start_date": "开始日期",
"end_date": "结束日期"
},
# 执行:连接本地 TDX 客户端读取
"execute": "TdxDataSource.fetch_daily_kline"
},
"tdx_money_flow": {
"name": "获取资金流向",
"description": "从通达信获取个股资金流向数据",
"parameters": {
"stock_code": "股票代码"
},
"execute": "TdxDataSource.fetch_money_flow"
},
"tdx_sector_rank": {
"name": "板块涨跌排名",
"description": "获取行业板块涨跌排名",
"parameters": {
"market": "市场:sh/sz"
},
"execute": "TdxDataSource.fetch_sector_rank"
}
}
Swarm 并行流式输出
# 多 Agent 并行执行时,流式输出合并
# 每个 Agent 独立产出,前端实时渲染
CLASS SwarmStreamMerger:
"""多 Agent 并行流式合并"""
ASYNC DEF merge_streams(self, agents, query):
# 1. 启动所有 Agent 并行执行
streams = []
FOR agent IN agents:
stream = agent.run_stream(query)
streams.append(stream)
# 2. 合并流式输出
# 每个 Agent 的输出带前缀标识(如 [数据获取] [分析])
async FOR chunk IN merge_async(*streams):
# 3. 实时推送到前端
AWAIT self.sse_emit({
"agent": chunk.agent_name,
"content": chunk.content,
"progress": chunk.progress
})
遇到的问题
- 通达信客户端必须先启动才能连接,用户经常忘记开 TDX,需要加连接检测和提示
- 多 Agent 并行流式输出时,前端渲染顺序不确定,用户体验混乱,需要按 Agent 优先级排序
- SVN 中文 commit message 在服务器上显示乱码(GBK 编码问题),需要本地转码
明日计划
- 修复通达信连接时 K 线无增量更新的问题
- 安全模块重构:SQL 注入防护、裸 except 修复