dexter
自主金融研究 Agent,能拆解复杂金融问题为步骤,使用实时市场数据执行分析、自我反思和迭代。亮点是内置任务规划与自验证机制,类似 Claude Code 但专为金融场景设计,支持 OpenAI/Anthropic 等多种 LLM 后端,并提供 WhatsApp 交互和评估套件。MIT 许可,适合开发者快速搭建 AI 驱动的投资研究工具。
README
Dexter 🤖
Dexter 是一个自主金融研究 agent(智能体),能够在工作中进行思考、规划和学习。它通过任务规划、自我反思和实时市场数据执行分析。你可以把它想象成 Claude Code,但专门为金融研究打造。
目录
👋 概述
Dexter 将复杂的金融问题转化为清晰、逐步的研究计划。它利用实时市场数据执行这些任务,检查自己的成果,并不断优化结果,直到得出有数据支撑的可靠答案。
核心能力:
- 智能任务规划:自动将复杂查询分解为结构化的研究步骤
- 自主执行:选择并执行合适的工具来收集金融数据
- 自我验证:检查自身工作并迭代,直至任务完成
- 实时金融数据:可获取利润表、资产负债表和现金流量表
- 安全特性:内置循环检测和步骤限制,防止失控执行
✅ 前置条件
- Bun 运行时(v1.0 或更高版本)
- OpenAI API 密钥(获取方式 点击这里)
- Financial Datasets API 密钥(获取方式 点击这里)
- Exa API 密钥(获取方式 点击这里)——可选,用于网络搜索
安装 Bun
如果你尚未安装 Bun,可以使用 curl 安装:
macOS/Linux:
curl -fsSL https://bun.com/install | bash
Windows:
powershell -c "irm bun.sh/install.ps1|iex"
安装完成后,重启终端并验证 Bun 是否安装成功:
bun --version
💻 安装方法
- 克隆仓库:
git clone https://github.com/virattt/dexter.git
cd dexter
- 使用 Bun 安装依赖:
bun install
- 配置环境变量:
# 复制示例环境文件
cp env.example .env
# 编辑 .env 并添加你的 API 密钥(如果使用云服务提供商)
# OPENAI_API_KEY=your-openai-api-key
# ANTHROPIC_API_KEY=your-anthropic-api-key (可选)
# GOOGLE_API_KEY=your-google-api-key (可选)
# XAI_API_KEY=your-xai-api-key (可选)
# OPENROUTER_API_KEY=your-openrouter-api-key (可选)
# 用于 agent 的机构级市场数据
# FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key
# (可选) 如果使用本地 Ollama
# OLLAMA_BASE_URL=http://127.0.0.1:11434
# 网络搜索(首选 Exa,回退至 Tavily)
# EXASEARCH_API_KEY=your-exa-api-key
# TAVILY_API_KEY=your-tavily-api-key
🚀 运行方法
以交互模式运行 Dexter:
bun start
或者在开发模式下使用热重载:
bun dev
📊 评估方法
Dexter 包含一套评估套件,可针对一组金融问题数据集测试 agent 的性能。评估使用 LangSmith 进行追踪,并采用 LLM-as-judge(以大语言模型为裁判)的方式评估回答正确性。
在所有问题上运行:
bun run src/evals/run.ts
在随机抽样的数据上运行:
bun run src/evals/run.ts --sample 10
评估运行器会显示实时界面,包括进度、当前问题和实时准确率统计。结果会记录到 LangSmith 中供分析。
🐛 调试方法
Dexter 将所有工具调用记录到 scratchpad(暂存盘)文件中,便于调试和历史追踪。每个查询会在 .dexter/scratchpad/ 目录下创建一个新的 JSONL 文件。
暂存盘位置:
.dexter/scratchpad/
├── 2026-01-30-111400_9a8f10723f79.jsonl
├── 2026-01-30-143022_a1b2c3d4e5f6.jsonl
└── ...
每个文件包含由换行分隔的 JSON 条目,追踪以下内容:
- init:原始查询
- tool_result:每次工具调用及其参数、原始结果和 LLM 摘要
- thinking:agent 的推理步骤
暂存盘条目示例:
{"type":"tool_result","timestamp":"2026-01-30T11:14:05.123Z","toolName":"get_income_statements","args":{"ticker":"AAPL","period":"annual","limit":5},"result":{...},"llmSummary":"已获取苹果公司 5 年年度利润表,显示营收从 2740 亿美元增长至 3940 亿美元"}
这使得检查 agent 收集了哪些数据以及如何解释结果变得非常容易。
📱 在 WhatsApp 中使用
通过将你的手机连接到网关,即可在 WhatsApp 上与 Dexter 聊天。发送给自身的消息会由 Dexter 处理,并将响应发送回同一个聊天窗口。
快速开始:
# 关联你的 WhatsApp 账户(扫描二维码)
bun run gateway:login
# 启动网关
bun run gateway
然后打开 WhatsApp,进入你自己的聊天窗口(给自己发消息),向 Dexter 提问。
详细设置步骤、配置选项和故障排除,请参阅 WhatsApp 网关 README。
🤝 贡献指南
- Fork 本仓库
- 创建功能分支
- 提交你的更改
- 推送到分支
- 创建 Pull Request
重要提示:请保持你的 Pull Request 小而精,这样更容易审查和合并。
📄 许可协议
本项目采用 MIT 许可协议。