功能描述 / Feature Description
把现有 DecisionSignal 的 outcome / feedback 从“可查询统计”升级成“可学习的复盘资产”,让下一次分析、Agent 问股和策略权重能看到历史判断为什么对、为什么错。
大白话:现在系统已经能记录 AI 建议,也能事后算 hit/miss;但这些结果还没有真正变成“经验”。这个 issue 目标是让系统能说:上次为什么看错、哪类信号容易错、同类股票下次应该更保守还是更积极。
现状 / Current State
docs/decision-signals.md 已定义 DecisionSignal 只记录建议、证据摘要、风险、观察条件、生命周期和来源,不执行下单。
DecisionSignalOutcomeService 已支持 1d/3d/5d/10d 后验评估、outcome stats、用户 feedback,以及 action/market/phase/source/quality/holding_state breakdown。
AgentMemory 已有开关 AGENT_MEMORY_ENABLED,能读取历史分析和 Backtest summary,并做 confidence calibration。
BaseAgent 已能注入 memory context,并在样本足够时调整 agent opinion confidence。
但当前 memory 更偏 AnalysisHistory + BacktestResult,没有充分消费 DecisionSignal outcome / feedback,也没有沉淀“失败原因”和“同类条件下的校准建议”。
相关但不同的 issue:feat: 新增按决策风格聚合的后验校准统计 #1758 聚焦按 decision_profile 做聚合后验统计;本 issue 聚焦把后验结果反馈到分析/Agent 决策闭环。
使用场景 / Use Case
用户查看某只股票时,系统能提示:“最近同类 buy 信号 5d 表现偏弱,本次应降低置信度”。
Agent 问股时,不只看到历史报告,还能看到历史信号 outcome 和用户反馈。
DecisionAgent 最终合成时可以引用低敏复盘摘要,而不是重复犯同类错误。
Skill / strategy 权重能基于真实 tagged outcome 慢慢校准,样本不足时保持中性。
Web AI 建议页可以展示“复盘摘要”:命中、错判、unable 原因、常见失败模式。
期望实现 / Proposed Solution
P0:定义 ReviewMemory 低敏契约
建议新增一个面向 Agent/分析消费的低敏结构,例如:
{
"stock_code" : " 600519" ,
"scope" : " stock|market|action|factor|skill" ,
"sample_size" : 42 ,
"completed" : 31 ,
"hit_rate_pct" : 58.1 ,
"avg_return_pct" : 1.7 ,
"common_miss_reasons" : [" 追高后回撤" , " 大盘退潮" , " 数据质量偏低" ],
"confidence_adjustment" : " neutral|downgrade|upgrade" ,
"notes" : [" 样本不足,仅供观察" ]
}
要求:
只使用低敏字段。
不输出完整 evidence、metadata、raw diagnostics、Prompt、新闻正文或私密持仓。
有样本阈值,样本不足时只做观察提示,不改变结论。
P1:Outcome + Feedback 进入 AgentMemory
AgentMemory.get_stock_history() 可以合并最近 DecisionSignal outcome:action、horizon、outcome、return、unable_reason、feedback。
增加 AgentMemory.get_decision_signal_review(...) 或类似服务,支持按股票、action、market_phase、source_agent、data_quality_level 查询低敏统计。
BaseAgent._build_memory_context() 注入更有用的复盘摘要,而不是只注入历史 signal/score/price。
P2:复盘结果影响置信度,但必须保守
若样本充足,允许对 agent confidence 做小幅校准。
样本不足、unable rate 高、数据质量差时,只提示风险,不做强校准。
校准要可解释:输出 raw_confidence、adjustment_reason、sample_size、calibration_source。
不允许把 hit_rate 直接当仓位比例或买卖强度。
P3:Web 和 API 可见复盘摘要
DecisionSignal 详情页可展示该信号的 outcome、feedback 和同类信号摘要。
可提供只读 review summary API,避免前端自己拼复杂统计。
支持从某个历史报告 / signal deep link 查看“这条建议后来怎么样”。
P4:和因子库 / multi-agent 增强联动
如果 feat: 建立 DSA 内部因子库与候选池评估闭环 #1902 因子库落地,复盘摘要可以按因子标签拆分。
如果 multi-agent 分歧归因落地,复盘摘要可以按 agent/source_agent/skill_consensus 拆分。
在这些字段不存在时必须 fail-open,不影响现有 outcome 计算。
非目标 / Non-goals
不改变 DecisionSignal “不下单、不调仓”的边界。
不做实盘交易、自动止盈止损或 copy trading。
不在样本不足时给“这个策略有效/无效”的强结论。
不把用户 feedback 当作真实收益结果;feedback 只能作为主观可用性信号。
不把后验统计做成黑箱自动改 Prompt;所有校准都要有可见理由和回滚路径。
验收标准 / Acceptance Criteria
建议影响路径 / Suggested Affected Areas
src/services/decision_signal_outcome_service.py
src/repositories/decision_signal_outcome_repo.py
src/services/decision_signal_summary.py
src/agent/memory.py
src/agent/agents/base_agent.py
src/services/backtest_service.py
api/v1/endpoints/decision_signals.py
api/v1/schemas/decision_signals.py
apps/dsa-web/src/pages/DecisionSignalsPage.tsx
apps/dsa-web/src/components/decision-signals/*
docs/decision-signals.md
验证建议 / Verification
后端:覆盖 outcome/feedback 为空、unable、样本不足、样本充足、按股票/action/phase 聚合等路径。
Agent:覆盖 AGENT_MEMORY_ENABLED=false 完全无行为变化;开启后只注入低敏摘要。
前端:覆盖详情页复盘摘要、loading/error/empty 状态。
文档:更新 DecisionSignal 专题和 full-guide;如新增用户可见复盘视图,同步 changelog。
回滚方式 / Rollback
首版应保持只读/低敏消费,回滚可通过关闭 AGENT_MEMORY_ENABLED 或 revert 对应 PR。
若新增 sidecar 表或索引,PR 需说明旧 outcome/feedback 数据保留和手动清理策略。
回滚后现有 DecisionSignal、feedback、outcome 数据不应被删除,普通分析/告警/通知/组合风险链路继续可用。
功能描述 / Feature Description
把现有 DecisionSignal 的 outcome / feedback 从“可查询统计”升级成“可学习的复盘资产”,让下一次分析、Agent 问股和策略权重能看到历史判断为什么对、为什么错。
大白话:现在系统已经能记录 AI 建议,也能事后算 hit/miss;但这些结果还没有真正变成“经验”。这个 issue 目标是让系统能说:上次为什么看错、哪类信号容易错、同类股票下次应该更保守还是更积极。
现状 / Current State
docs/decision-signals.md已定义 DecisionSignal 只记录建议、证据摘要、风险、观察条件、生命周期和来源,不执行下单。DecisionSignalOutcomeService已支持1d/3d/5d/10d后验评估、outcome stats、用户 feedback,以及 action/market/phase/source/quality/holding_state breakdown。AgentMemory已有开关AGENT_MEMORY_ENABLED,能读取历史分析和 Backtest summary,并做 confidence calibration。BaseAgent已能注入 memory context,并在样本足够时调整 agent opinion confidence。AnalysisHistory + BacktestResult,没有充分消费 DecisionSignal outcome / feedback,也没有沉淀“失败原因”和“同类条件下的校准建议”。decision_profile做聚合后验统计;本 issue 聚焦把后验结果反馈到分析/Agent 决策闭环。使用场景 / Use Case
期望实现 / Proposed Solution
P0:定义 ReviewMemory 低敏契约
建议新增一个面向 Agent/分析消费的低敏结构,例如:
{ "stock_code": "600519", "scope": "stock|market|action|factor|skill", "sample_size": 42, "completed": 31, "hit_rate_pct": 58.1, "avg_return_pct": 1.7, "common_miss_reasons": ["追高后回撤", "大盘退潮", "数据质量偏低"], "confidence_adjustment": "neutral|downgrade|upgrade", "notes": ["样本不足,仅供观察"] }要求:
P1:Outcome + Feedback 进入 AgentMemory
AgentMemory.get_stock_history()可以合并最近 DecisionSignal outcome:action、horizon、outcome、return、unable_reason、feedback。AgentMemory.get_decision_signal_review(...)或类似服务,支持按股票、action、market_phase、source_agent、data_quality_level 查询低敏统计。BaseAgent._build_memory_context()注入更有用的复盘摘要,而不是只注入历史 signal/score/price。P2:复盘结果影响置信度,但必须保守
P3:Web 和 API 可见复盘摘要
P4:和因子库 / multi-agent 增强联动
非目标 / Non-goals
验收标准 / Acceptance Criteria
AGENT_MEMORY_ENABLED=true时注入低敏摘要。POST /api/v1/decision-signals/outcomes/run、feedback、stats 行为保持兼容。建议影响路径 / Suggested Affected Areas
src/services/decision_signal_outcome_service.pysrc/repositories/decision_signal_outcome_repo.pysrc/services/decision_signal_summary.pysrc/agent/memory.pysrc/agent/agents/base_agent.pysrc/services/backtest_service.pyapi/v1/endpoints/decision_signals.pyapi/v1/schemas/decision_signals.pyapps/dsa-web/src/pages/DecisionSignalsPage.tsxapps/dsa-web/src/components/decision-signals/*docs/decision-signals.md验证建议 / Verification
AGENT_MEMORY_ENABLED=false完全无行为变化;开启后只注入低敏摘要。回滚方式 / Rollback
AGENT_MEMORY_ENABLED或 revert 对应 PR。