改进路线图(Roadmap)
更新:2026-10-02。承接 docs/Token控制改进方案.md 的调研结论,将全项目可改进方向收敛为一份可执行清单。
每条给出目标、优先级与验收方式;已完成的条目在 CHANGELOG 中留痕。
上游对齐(TradingAgents v0.4.x)
上游 TauricResearch/TradingAgents 在 v0.4.0~v0.4.2(2026-08-31 ~ 09-07)几乎没有
新增功能,全部在做正确性,主线就是前视偏差与决策可信度。我们已完成同源修复,
详见 docs/前视偏差防护.md:
| # |
方向 |
状态 |
| A1 |
交易记忆时间点门控(get_past_context(as_of=...)) |
✅ 已落地 |
| A2 |
向量记忆检索日期门控(TF-IDF 排序前过滤 + chroma where + 兜底) |
✅ 已落地 |
| A3 |
反思闭环持有窗口按交易日判定 + 平仓日作为落地日 |
✅ 已落地 |
| A4 |
新闻窗口:未来/无日期条目保守丢弃,筛空不退回全量 |
✅ 已落地 |
| A5 |
评级解析不出来 → 「待复核」,不再静默降级成「持有」 |
✅ 已落地 |
| A6 |
Trader 拿到技术面报告 + 绝对价位约束 |
✅ 已落地 |
| A7 |
研究经理/组合经理「证据不足→持有」裁决纪律 |
✅ 已落地 |
| A8 |
VendorError 层级 + 软失败串也触发换源 |
✅ 已落地 |
| A9 |
基本面「当期快照」泄漏(上游 #1300) |
✅ 已落地 |
| A10 |
若接入带 vintage 的宏观源,vintage 必须钉在 as-of 日 |
⏳ 未接入该源 |
P0 — 性能与成本
| # |
方向 |
现状 |
行动 |
验收 |
| 1 |
统一系统提示词前缀(Token 策略 2B) |
✅ 已完成(68f7d0f) |
— |
guard tests 通过 |
| 2 |
分层模型路由(Token 策略 1) |
✅ 节点级路由已存在:辩手→heavy、研究经理+交易员+风控→standard、分析师→quick、基金经理→deep;信号提取为规则引擎(0 Token) |
剩余:TASK_COMPLEXITY_MAP 显式常量化供文档引用 |
映射常量 + 文档一致 |
| 3 |
摘要式上下文传递(Token 策略 2A) |
✅ 全面完成:研究员侧 _compress_prose() 确定性摘要 + 基金经理侧 _build_decision_matrix() 决策矩阵(0 额外 token) |
tests/test_context_digest.py + tests/test_pm_matrix.py |
|
| 4 |
语义缓存(Token 策略 3) |
✅ llm_clients/semantic_cache.py(TTL+LRU+归一化key+0.92 相似度),默认关闭挂在 _safe_invoke |
复现实验:同股同日重复分析命中率统计 |
|
P1 — 能力边界
| # |
方向 |
说明 |
| 5 |
MCP server 化 |
✅ 零依赖 mcp_server.py:analyze_stock / list_snapshots / get_snapshot / read_recent_memories,stdio NDJSON 协议含端到端测试 |
| 6 |
外部校准接入 |
跟踪可公开结算、与 A 股个股评级可比的第三方记分板(已知候选:Headline Arena,见 issue #1)。试点支撑已落地(external_calibration/ + scripts/external_calibration.py + docs/外部校准接入.md):只读拉取公开机械结算并写入独立台账(带 source: external_headline_arena,与内部交易记忆物理隔离),与提交前冻结的本地判断配对成两条线比对报告。未做:自动提交预测(按约定试点期人工提交)、接入反思闭环主流程。验收:issue #1 的两周比对数据 |
| 7 |
回测复盘 MCP 工具 |
✅ review_backtest 工具接入 scripts/review_backtest.py(days/report 参数) |
| 8 |
数据源容灾 |
✅ 换源触发条件补齐(异常 + [ERROR] 软失败串),错误类型化(dataflows/errors.py),缺 key 降为 debug 级、限流为 warning@tests/test_dataflows_vendor_errors.py(35 项) |
| 8b |
基本面当期快照泄漏(A9) |
✅ point_in_time.report_is_known(公告日精确、退回法定披露截止日)+ 四个基本面工具的运行日由 InjectedState("trade_date") 注入:Tushare 按 ann_date/trade_date 过滤、akshare 按报告期+公告日过滤并隐去当期市值/股本快照、妙想无可判定报告期则抛 VendorError 换源;实时运行不门控@tests/test_fundamentals_pointintime.py(25 项)+tests/test_point_in_time.py(+24 项) |
| 8c |
监控层(盯盘与告警) |
✅ monitor/ 包:规则 DSL(8 类,支持按标的覆盖)+ 轮询引擎(交易时段门控、冷却去重、JSONL 台账)+ 8 通道通知(企业微信/钉钉/飞书/Server酱/PushPlus/Bark/webhook/console)+ astock-trader watch 子命令。实时行情源 dataflows/realtime_data.py(腾讯主源+新浪兜底,免 Key,历史日期硬拒绝)。设计依据见 docs/监控层与数据源扩展.md@tests/test_monitor.py + tests/test_realtime_data.py。未做:异动触发深度分析、每日触发上限、交易日历、TTL 缓存 |
| 8d |
数据广度:GDELT 全球新闻 |
✅ dataflows/gdelt_data.py(免 Key,DOC 2.0 API),作为 get_global_news 第三顺位接入路由表;查询上界钉死在分析日(时点门控)+ 客户端 5 秒节流。已知限制:DOC API 只索引最近约 3 个月;共享出口 IP 会被他人拖成 429@tests/test_gdelt_data.py(20 项) |
| 8e |
行情源容灾:日线三源 fallback |
✅ 东方财富 → 新浪 → 腾讯依次尝试,表头回写实际出数的源。东财按出口 IP 做服务端拦截(UA/Referer/TLS 指纹均无效,akshare #6100/#7098),此前单源一挂整条技术面就没有输入。三源列名/单位不同,统一归一化为 volume(手) / turnover(元)(腾讯 1.18.x 的 amount 列实为成交量、≥1.19 才改语义,按列名结构判别)@tests/test_ohlcv_fallback.py(31 项) |
| 8f |
工具封装与 vendor 签名一致性守卫 |
✅ tests/test_tool_signatures.py:把每个工具真实路由到的 vendor 函数取出来逐参数比对。get_indicators 的封装从首次提交起就传着 vendor 不存在的 start_date/end_date,技术分析师一次都没拿到过均线/MACD/RSI/BOLL —— 这个形状在原有 600+ 项测试里完全没有覆盖,因为它只在真正调用时才炸 |
| 8g |
辩论历史被嵌套状态覆盖 |
✅ graph/setup.py::_merge_debate。LangGraph 不对嵌套 TypedDict 应用 reducer(子字典按 LastValue 整体替换),而辩论顺序是 Bull→Bear→Bull→主管,于是主管只看到最后一轮多头、空头论据被冲掉,实测中出现「本次空头未提交论据」并由主管代拟空方立场。前提已用最小 StateGraph 钉死在 tests/test_debate_state_merge.py |
| 8h |
统一落盘根目录 |
✅ paths.resolve_project_dir()(ASTOCK_HOME → D:\astock_trader → ~/.astock_trader)+ default_config.derive_paths()。此前 ~/.astock_trader 硬编码在九个模块里,改根要动九处、漏一处就是半迁移状态;报告目录缺省空串导致默认根本不生成报告,一并改为默认写 <项目根>/reports/@tests/test_paths.py(17 项) |
P2 — 生态与体验
| # |
方向 |
说明 |
| 9 |
Skills 扩展 |
龙虎榜解读 ✅、行业对比解读 ✅(skills/);候选:同板块轮动对比(已含于 W3 提示维度,升级版待议) |
| 10 |
CI 工作流 |
✅ .github/workflows/ci.yml 已存在(ruff + pytest 矩阵 3.10/3.11/3.12) |
| 11 |
国际化 |
README 英文精简版 + 术语表(买入/增持/持有/减持/卖出 ↔ buy/overweight/hold/reduce/sell) |
| 12 |
文档站 |
✅ mkdocs-material + Pages 工作流(cf19d28);需在仓库 Settings→Pages 选择 GitHub Actions 源一次 |
| 13 |
前视偏差防护专题文档 |
✅ docs/前视偏差防护.md:五道门的判据、错误层级契约、新增数据源检查清单、已知缺口 |
已搁置/不做
- Headline Arena 自动提交预测(题域错位、数据出境依赖;试点期改由人工提交,代码层只做记录与比对)——issue #1
- 把外部结算结果直接写入内部交易记忆(违反来源隔离约束 3:两套证据必须分开存放)