QVeris · 数据实测结论先说金融 Agent 真正难的不是生成一段看起来完整的分析而是把一次金融研究任务稳定地跑完。它要知道自己需要什么数据知道哪些数据已经拿到知道哪些证据不够知道失败发生在哪里也要知道用户补充一句话之后怎么沿着上一轮任务继续往下走。换句话说金融 Agent 不能只追求回答得像研究员它更需要像一个可追踪、可恢复、可复核的研究流程。一次性 Prompt 能回答问题但不等于能做研究很多金融 Agent demo 一开始都很惊艳。用户问帮我分析一下某只股票还能不能买。模型很快给出一篇完整回答公司业务、近期行情、行业环境、估值风险、投资建议看起来结构清楚语气专业。但真正进入金融场景后问题很快会暴露出来它到底看了哪一版数据有没有拿到最新 K 线新闻和行情是否对齐财报、公告、研报是不是同一时间窗口如果某个数据源失败了它是明确降级还是默默用猜测补上一次性 Prompt 的问题不是它不会写而是它很难持续证明自己为什么这么写。投研不是一个问题而是一组不断变化的工作流。今天看行情明天看公告后天要因为一条新闻重跑假设下周还要把结果和实际走势复盘。一个只会当场生成答案的 Agent很难支撑这种连续过程。工具越多越不能只靠模型临场发挥金融 Agent 接入工具以后看起来能力会立刻变强行情、新闻、财报、公告、研报、宏观、回测都能查。但工具越多系统越容易出现另一个问题工具不是简单的 API 列表而是一组语义并不相同的数据入口。同样是 symbol在行情工具里可能代表证券代码在财报工具里可能代表公司主体在新闻工具里可能只是搜索关键词。A 股、美股、港股的 ticker 格式可能不一样技术指标、资金流、新闻搜索、财务摘要对参数的要求也不一样。如果所有规则都塞进一段超长 Prompt模型不仅容易忘还可能把一个工具的规则误用到另一个工具上。所以金融 Agent 后面一定会从一段通用 Prompt走向更分层的上下文全局规则、provider 规则、工具精确规则、历史失败经验、参数修复经验都应该按当前任务动态加载。这不是为了把 Prompt 写复杂而是为了让工具调用变得可修复、可解释、可复用。金融 Agent 的关键不是答案而是证据组织金融问题最怕的不是结论保守而是结论没有证据。用户问某家公司最近为什么波动一个很快的回答可以说可能和行业消息、订单预期、资金变化有关。听起来没错但金融场景里听起来像答案不代表经得起追问。真正可靠的系统应该能把不同来源放在一起质证·行情数据证明市场有没有反应。·成交量和资金流证明反应是否异常。·新闻和公告解释可能的事件原因。·财报和基本面判断影响是不是短期噪音。·研报和行业信息帮助判断市场是否已经提前预期。这些来源不是可以随便替换的接口而是不同角色的证据。Agent 的价值不是把它们拼成一段话而是知道每类证据能证明什么不能证明什么。这也是金融 Agent 从问答走向工作流时最核心的一步用户看到的不应该只是分析完成而应该能看到结论、依据、风险、数据缺口和下一步动作。失败不是异常情况而是金融工作流的一部分做金融 Agent 时一个很容易被低估的问题是失败。现实里失败非常常见·用户没给股票代码、策略条件或时间区间。·数据源返回空结果。·数据请求还在处理中结果暂时没有完成。·不同数据源对 ticker 格式有特殊要求。·quote 里没有 volume但 OHLCV 里其实已经有成交量。·宏观问题被误套成个股分析模型。·数据结果已经返回了但报告层没有及时恢复聚合。如果系统只会把这些情况统一表达成分析失败用户就会困惑到底是我问错了还是数据源坏了还是模型不会分析更合理的做法是把失败拆成可理解的状态正在取数、需要补充输入、数据源暂不可用、部分数据缺失、请求超时可重试、结果已完成但证据不足。这听起来像产品文案问题本质其实是系统建模问题。只有底层把任务、步骤、证据、请求、结果、重试动作建清楚上层才能把复杂状态翻译成用户能理解的话。不要让 LLM 文本变成数据管道金融 Agent 还有一个很典型的坑让模型把结构化数据通过自然语言转述给下一步。比如回测任务里行情分析模块可能已经拿到了 K 线但父流程要从它的回复文本里解析 candles。只要模型回复不完整、上下文过长、字段格式漂移最后就可能变成 0 candles。这不是模型不聪明而是链路设计不对。K 线、成交量、财报表格、组合持仓、回测结果本质上都不应该靠自然语言传递。更稳的方式是 artifact-first工具调用成功后把 requestId、toolId、参数、状态、原始结果、标准化 candles、quote、news、financials 都写成结构化 artifact。回测、报告、证据审计再读取 artifact而不是从聊天文本里抠数据。LLM 适合理解问题、解释结果、归纳风险但不应该承担高密度金融数据的中间传输层。用户最终需要的不是过程噪音而是可理解的研究状态可追踪不等于把所有内部细节都暴露给用户。用户不需要看到 storeDir、requestId、toolId null、底层心跳、raw JSON、sourceRequestIds。那些是工程诊断信息不是产品信息。用户真正需要看到的是·当前任务在规划、取数、分析还是撰写。·哪些核心数据已经拿到。·哪些增强数据缺失但不影响主结论。·哪些数据缺失会降低置信度。·系统是否需要他补充输入。·失败后能不能继续、重试或降级完成。这也是金融 Agent 从 demo 走向产品的关键一步内部可以复杂但外部要稳定、克制、可理解。从会回答到能恢复金融 Agent 的下一阶段不应该只比谁接了更多工具谁的模型更会写报告。真正重要的是它能不能把金融研究过程组织起来。它要能识别任务类型规划数据需求调用合适工具区分核心证据和可选证据沉淀结构化 artifact生成可解释报告并且在缺数据、超时、用户追问、输入不足时继续恢复。一个成熟的金融 Agent不是永远不失败。恰恰相反它应该承认失败、解释失败、保存现场、允许补充输入并尽量沿着上一轮研究继续往下走。这才是金融 Agent 从一次性问答走向真实投研工作流的分界线。最后可以把这件事概括成一句话金融 Agent 的核心竞争力不是把每个问题都回答得很漂亮而是让每一次回答都有数据、有证据、有状态、有边界并且失败之后还能继续。