
AI 金融分析三步流水线Dexter 如何把复杂问题拆成可执行计划【免费下载链接】dexterAn autonomous agent for deep financial research项目地址: https://gitcode.com/GitHub_Trending/dexter19/dexter把评估特斯拉 2024 年 Q3 财务健康这类问题抛给 Dexter 这个开源自主智能体它不会直接甩一个答案——而是先把问题拆开取数、算指标、对比同业再整理出结论。这套任务分解的精髓是一条不断重复的三步流水线。本文带你从代码层面走一遍它的运行方式。 运行原理一句话智能体就像坐在工位上的分析师先抛开代码说说 Agent Loop智能体循环即思考→行动→总结反复跑的闭环。Dexter 干活的方式很像一位金融分析师先查资料再核对数据够不够整理一下看过的东西最后给出结论。查资料就是调工具整理就是把结果压成摘要给结论就是最终回答。关键在于每一轮循环结束模型自己决定下一步——觉得数据还不够就再调一次工具进入下一轮觉得够了就停掉循环输出答案。没有人为写死的分支逻辑该不该继续由模型实时判断。 三步流水线复杂问题被一层层拆开① 工具映射什么问题调什么工具为什么需要金融问题的信息需求五花八门——基本面、行情、财报不可能指望模型凭感觉乱查。得先让模型知道自己手里有什么牌。怎么实现src/tools/registry.ts 里的getToolRegistry()把所有工具注册在一个地方每个工具都带一段描述做什么、什么时候用get_financials管财务报表get_market_data管股价和新闻read_filings管 SEC 文件。用户问估值模型自己挑get_financials问行情挑get_market_data。映射靠描述驱动而不是写死的 if-else。② 摘要压缩原始数据不全量塞进上下文为什么需要一份完整财报动辄上万 token如果每次工具结果都原样塞进上下文几轮之后窗口就爆了分析进行不下去。必须留重点、扔冗余。怎么实现先总结再继续。src/agent/compact.ts 会调一个快速模型把已经积累的各次工具结果压成一份结构化摘要——原始问题、关键数字、还缺哪些数据——后续轮次里用这份摘要替换原始结果。文件里的注释说得很直白与其丢掉旧工具结果信息永久丢失不如让快速 LLM 把它们总结掉。换句话说模型永远基于关键信息推理而不是原始数据堆。③ 迭代熔断maxIterations 上限怎么兜底为什么需要万一模型一直觉得数据还不够呢不设上限它可能无限取数、无限循环那就是失控的 API 账单和卡死的过程。熔断机制给整个过程一个下班时间。怎么实现一个常量和一个 while 条件const DEFAULT_MAX_ITERATIONS 10;这个常量配合 src/agent/agent.ts 主循环里的while (ctx.iteration this.maxIterations)到了上限就强制停手并如实汇报未能在限定步数内完成。上限是可配置的——定时任务场景设 6主交互流程给 10。 案例走查特斯拉 2024 Q3 财务健康是怎么一步步得出的假设你问评估特斯拉 2024 年 Q3 的财务健康状况整个过程沿这条时间线推进步骤动作典型工具1识别关键要素特斯拉、2024Q3、财务健康纯推理不调工具2取 10-Q 季报和三大报表read_filings / get_financials3算流动比率、负债水平、营收增速get_financials 模型推理4取同业福特、通用等数据做对比get_market_data5权衡供应链与竞争因素给出最终结论摘要压缩 最终回答这里有两个细节值得注意。先说第 3 步模型不自己算数它拿工具返回的数字做比率推导再说第 4 步如果它觉得对比不充分会再发起一轮工具调用——这正是 Agent Loop 里迭代二字的体现。到了第 5 步如果上下文已经涨得较大压缩机制会介入先把前面的结果压成摘要再落笔写结论。 实现要点速览想读源码的话最值得一看的是 src/agent/agent.ts 的核心循环——一句话每轮先调模型有工具调用就执行并把结果塞回去没有工具调用就认为完工、给出答案while (ctx.iteration this.maxIterations) { const response await callModel(messages); if (!hasToolCalls(response)) return finalAnswer; // 无工具调用即完成 const toolMessages await executeTools(response); messages.push(...toolMessages); // 结果回填进入下一轮 }循环里还配了一个 Scratchpadscratchpad字面意思草稿本把本次运行每次工具调用和结果都落到磁盘方便随时复盘它到底做了什么。把工具描述拼进指令的系统提示则放在 src/agent/prompts.ts。循环、工具清单、压缩逻辑这三块就是任务分解的完整骨架。 上手与注意事项三步跑起来git clone https://gitcode.com/GitHub_Trending/dexter19/dexter cd dexter bun install # 按 env.example 在 .env 里填好 API key然后 bun start最后说句实话maxIterations 上限意味着复杂问题最多只有十来轮挖掘数据没取全时它可能直接认输行情与财务数据的准确性则取决于上游 API输出仅供研究参考别拿去当真实交易的依据。【免费下载链接】dexterAn autonomous agent for deep financial research项目地址: https://gitcode.com/GitHub_Trending/dexter19/dexter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考