news 2026/9/4 11:25:47

Dexter 使用指南:复杂金融研究问题如何被自动拆解成可执行步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Dexter 使用指南:复杂金融研究问题如何被自动拆解成可执行步骤

Dexter 使用指南:复杂金融研究问题如何被自动拆解成可执行步骤

【免费下载链接】dexterAn autonomous agent for deep financial research项目地址: https://gitcode.com/GitHub_Trending/dexter19/dexter

把"这家公司估值合不合理"这类大问题直接丢给大模型,你多半只能收到几句没有数据、没有出处的套话。Dexter 是一个开源金融研究智能体:它把复杂问题自动拆成可执行的研究步骤,自己抓取实时财务数据,再检查自己的工作,最后才给出答案。本文带你从源码层面走一遍这条"提问→取数→作答"的路径。

为什么复杂金融问题,直接问大模型总差口气

你晚上翻财报,想搞清楚特斯拉上季度现金流到底健康不健康。打开聊天框问一句,回来的是"品牌力强、但竞争激烈"之类的三行字,没有一个数字,也没有一个出处。

问题在于:金融答案必须落在数据上,而模型不知道数据在哪。你得自己去终端拉财报、自己算比率、自己找同行对照。这些脏活,正是 Dexter 想替你干的部分。

那它是怎么干成的?答案在一个循环里。

核心循环:智能体是怎么想一步做一步的 🔁

大白话讲,Dexter 的核心是一个智能体循环(Agent Loop,即模型"想一步、做一步、再看结果"的反复过程)。分三步看:

输入:你发一句问题。系统先给模型拼好"开场简报"——系统提示词、历史对话、你这句提问,同时为这次提问开一个 scratchpad(草稿板),一个只增不改的记录文件,后面每次工具调用都记进去。

处理:模型判断"我是否还缺数据"。缺,就发起工具调用(tool call,即模型告诉程序"去取这份数据",程序执行并把结果写回对话)。系统执行这些调用,把结果追加回对话。

输出:模型认为数据够了,就不再调工具,它的回复就是最终答案。

主循环就在 Agent 类 里:

// src/agent/agent.ts 主循环(节选简化) while (ctx.iteration < this.maxIterations) { const mc = microcompactMessages(messages); // 1. 清理上下文 const response = await this.callModel(messages); // 2. 让模型想一步 if (!hasToolCalls(response)) { // 3. 无工具调用 = 最终答案 yield* this.handleDirectResponse(responseText, ctx); return; } const { toolMessages } = await this.executeTools(response, ctx); // 4. 执行工具 messages.push(...toolMessages); }

整个过程默认最多跑 10 轮。到点就停,并说明原因,不会无限转圈。

循环只是骨架,真正的难点在三个细节上。

关键能力拆解:拆任务、压上下文、防跑偏 🧩

任务怎么拆:工具表就是行动清单

Dexter 没有单独的"规划"模块,它拆任务靠的是看工具清单。工具注册表 里登记着 get_financials(财务报表)、get_market_data(行情与新闻)、read_filings(SEC 文件)、stock_screener(选股筛选)这些金融工具,每个工具还带一个"能否并发"标记。

模型看到问题后从这张清单里挑:先取什么数、再取什么数,一个复杂问题就这样变成一串工具调用,不需要你事先写计划。

上下文怎么压:三层防线防过载

一次工具结果动辄几万字符,模型窗口装不下这么多。Dexter 布了三层防线:第一层,超过 5 万字符的结果先落盘,上下文里只留 2000 字符预览加文件路径,见大结果持久化;第二层,每轮对话做一次轻量裁剪,把过老的只读工具结果清掉腾位置;第三层,当上下文逼近阈值,调一个快速模型把所有结果压缩成一份结构化"研究进度纪要",关键数字一个不落,接着干,见压缩模块。

怎么防跑偏:软限额而不是硬拦截

你可能会问:模型要是不停取数,会不会一直转?答案是 scratchpad 里的软限额。

它把每次工具调用记成 JSONL 文件,同时做软限制统计:每个工具默认最多调 3 次;发现你在重复几乎相同的参数,就往提示词里注入一条提醒,让模型自己意识到"该停手了"。

提醒而不是拦截,给模型留了自我纠正的余地。再叠加 10 轮迭代上限,"无限取数"这种死循环基本被堵死了。

原理讲完,看看它在真实任务里怎么跑。

实战走查:一句估值问题背后的三轮调用

举个例子,你输入:"NVDA 现在的估值合理吗?对比一下同行。"

第一轮:模型先用 get_financials 拉 NVDA 最新财报,同时并发起 get_market_data 取行情——只读工具可以并行跑,一步顶两步。

第二轮:它发现缺同行数据,用 stock_screener 或 web_search 补一列同业估值倍数。此时上一轮的大结果开始被裁剪:microcompact 把最老的内容清成占位标记,窗口腾出来了。

第三轮:数据够了,模型停止调用工具,直接输出答案:用了哪些估值倍数、对照了哪些数据、结论是什么,一次讲清。

你最终拿到两样东西:一份带数字和来源的回答;外加.dexter/scratchpad/里一个 JSONL 文件,完整记录每次工具调用和摘要。想核对某一步的算法,翻它就行。

想自己跑一遍的话,配置并不复杂。

快速上手:三步跑通 Dexter ⚡

git clone https://gitcode.com/GitHub_Trending/dexter19/dexter cd dexter && bun install cp env.example .env # 填上密钥 bun start

细节见 README。提醒一句:.env 里至少填好 LLM 密钥(如 OPENAI_API_KEY)和 FINANCIAL_DATASETS_API_KEY,行情数据全靠后者,缺了工具集就是空的。

Dexter 的价值不在于它替你说出答案,而在于"问题→数据→结论"这条链路全程留痕、可复查。做 Agent 开发的话,值得把 src/agent/ 下的循环与压缩逻辑完整读一遍;做研究的话,clone 下来填好密钥,把你的第一个问题丢给它。

【免费下载链接】dexterAn autonomous agent for deep financial research项目地址: https://gitcode.com/GitHub_Trending/dexter19/dexter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 11:24:00

阿姆达尔定律:为什么核数翻倍,速度不翻倍?

阿姆达尔定律&#xff1a;为什么核数翻倍&#xff0c;速度不翻倍&#xff1f; 【免费下载链接】hacker-laws &#x1f9e0; Laws, Theories, Principles and Patterns for developers and technologists. 项目地址: https://gitcode.com/GitHub_Trending/ha/hacker-laws …

作者头像 李华
网站建设 2026/9/4 11:22:56

Redux Toolkit实战:从零构建可维护的React状态管理应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 11:19:31

SpringBoot智能评分引擎:规则驱动的教育自动化实践

简介&#xff1a;这是一套面向计算机专业本科生的毕业设计/课程设计级项目资源&#xff0c;聚焦教育信息化场景&#xff0c;提供基于SpringBootVue的自动评分系统完整实现方案&#xff0c;旨在帮助学生快速掌握前后端分离开发与教育应用落地实践。资源包共117个文件&#xff0c…

作者头像 李华
网站建设 2026/9/4 11:17:46

语音智能体是什么?数字员工为企业带来了哪些具体变化?

数字员工在现代企业中尤为重要&#xff0c;其在优化业务流程、降低成本和提升效率方面展现出显著的价值。例如&#xff0c;语音智能体通过自动化处理日常的客户接洽和信息传递&#xff0c;减少了传统人工服务所需的资源。这种自动化不仅提升了沟通效率&#xff0c;还确保了服务…

作者头像 李华
网站建设 2026/9/4 11:17:28

STM32F103RC驱动ILI9341 SPI屏移植LittleVGL V6.0完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华