virattt/dexter
GitHub: virattt/dexter
Dexter 是一个基于大语言模型的自主金融研究智能体,能够将复杂金融问题分解为结构化研究计划,自动获取实时财报数据并迭代验证,最终输出有数据支撑的分析结论。
Stars: 16823 | Forks: 2048
# Dexter 🤖
Dexter 是一个自主金融研究智能体,能够像人类一样思考、规划和学习。它利用任务规划、自我反思和实时市场数据进行分析。可以把它看作是 Claude Code,但它是专为金融研究而构建的。
## 目录
- [👋 概述](#-overview)
- [✅ 前置条件](#-prerequisites)
- [💻 如何安装](#-how-to-install)
- [🚀 如何运行](#-how-to-run)
- [📊 如何评估](#-how-to-evaluate)
- [🐛 如何调试](#-how-to-debug)
- [📱 如何配合 WhatsApp 使用](#-how-to-use-with-whatsapp)
- [🤝 如何贡献](#-how-to-contribute)
- [📄 许可证](#-license)
## 👋 概述
Dexter 将复杂的金融问题转化为清晰的、分步骤的研究计划。它使用实时市场数据执行这些任务,检查自身工作,并优化结果,直到得出有信心、有数据支持的答案。
**核心能力:**
- **智能任务规划**:自动将复杂查询分解为结构化的研究步骤
- **自主执行**:选择并执行正确的工具来收集金融数据
- **自我验证**:检查自身工作并迭代,直到任务完成
- **实时金融数据**:访问利润表、资产负债表和现金流量表
- **安全特性**:内置循环检测和步数限制,防止失控执行
[](https://twitter.com/virattt) [](https://discord.gg/jpGHv2XB6T)
## ✅ 前置条件
- [Bun](https://bun.com) 运行时(v1.0 或更高版本)
- OpenAI API key(在[此处](https://platform.openai.com/api-keys)获取)
- Financial Datasets API key(在[此处](https://financialdatasets.ai)获取)
- Exa API key(在[此处](https://exa.ai)获取)- 可选,用于网页搜索
#### 安装 Bun
如果您尚未安装 Bun,可以使用 curl 进行安装:
**macOS/Linux:**
```
curl -fsSL https://bun.com/install | bash
```
**Windows:**
```
powershell -c "irm bun.sh/install.ps1|iex"
```
安装完成后,重启终端并验证 Bun 是否已安装:
```
bun --version
```
## 💻 如何安装
1. 克隆仓库:
```
git clone https://github.com/virattt/dexter.git
cd dexter
```
2. 使用 Bun 安装依赖:
```
bun install
```
3. 设置环境变量:
```
# 复制示例环境文件
cp env.example .env
# 编辑 .env 并添加您的 API keys(如果使用云服务商)
# 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 (可选)
# 面向 agents 的机构级市场数据;AAPL, NVDA, MSFT 免费
# FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key
# (可选) 如果本地使用 Ollama
# OLLAMA_BASE_URL=http://127.0.0.1:11434
# Web Search (首选 Exa,Tavily 备用)
# EXASEARCH_API_KEY=your-exa-api-key
# TAVILY_API_KEY=your-tavily-api-key
```
## 🚀 如何运行
以交互模式运行 Dexter:
```
bun start
```
或者使用监听模式进行开发:
```
bun dev
```
## 📊 如何评估
Dexter 包含一个评估套件,用于针对一组金融问题数据集测试智能体。评估使用 LangSmith 进行跟踪,并采用 LLM-as-judge(LLM 作为评判者)方法对正确性进行评分。
**在所有问题上运行:**
```
bun run src/evals/run.ts
```
**在随机抽样数据上运行:**
```
bun run src/evals/run.ts --sample 10
```
评估运行器会显示实时 UI,展示进度、当前问题和运行中的准确率统计数据。结果会记录到 LangSmith 以供分析。
## 🐛 如何调试
Dexter 将所有工具调用记录到临时文件中,用于调试和历史跟踪。每次查询都会在 `.dexter/scratchpad/` 中创建一个新的 JSONL 文件。
**临时文件位置:**
```
.dexter/scratchpad/
├── 2026-01-30-111400_9a8f10723f79.jsonl
├── 2026-01-30-143022_a1b2c3d4e5f6.jsonl
└── ...
```
每个文件包含换行符分隔的 JSON 条目,跟踪:
- **init**:原始查询
- **tool_result**:每次工具调用,包含参数、原始结果和 LLM 摘要
- **thinking**:智能体推理步骤
**临时文件条目示例:**
```
{"type":"tool_result","timestamp":"2026-01-30T11:14:05.123Z","toolName":"get_income_statements","args":{"ticker":"AAPL","period":"annual","limit":5},"result":{...},"llmSummary":"Retrieved 5 years of Apple annual income statements showing revenue growth from $274B to $394B"}
```
这使得检查智能体收集的确切数据及其对结果的解释变得容易。
## 📱 如何配合 WhatsApp 使用
通过将您的手机链接到网关,即可通过 WhatsApp 与 Dexter 聊天。您发送给自己的消息将由 Dexter 处理,回复将发送回同一个聊天窗口。
**快速开始:**
```
# 关联您的 WhatsApp 账号 (扫描二维码)
bun run gateway:login
# 启动 gateway
bun run gateway
```
然后打开 WhatsApp,进入您自己的聊天(发消息给自己),并向 Dexter 提问。
有关详细的设置说明、配置选项和故障排除,请参阅 [WhatsApp 网关 README](src/gateway/channels/whatsapp/README.md)。
## 🤝 如何贡献
1. Fork 本仓库
2. 创建一个功能分支
3. 提交您的更改
4. 推送到该分支
5. 创建一个 Pull Request
**重要提示**:请保持您的 Pull Request 简小且专注。这将使其更容易被审查和合并。
## 📄 许可证
本项目根据 MIT 许可证授权。
## 目录
- [👋 概述](#-overview)
- [✅ 前置条件](#-prerequisites)
- [💻 如何安装](#-how-to-install)
- [🚀 如何运行](#-how-to-run)
- [📊 如何评估](#-how-to-evaluate)
- [🐛 如何调试](#-how-to-debug)
- [📱 如何配合 WhatsApp 使用](#-how-to-use-with-whatsapp)
- [🤝 如何贡献](#-how-to-contribute)
- [📄 许可证](#-license)
## 👋 概述
Dexter 将复杂的金融问题转化为清晰的、分步骤的研究计划。它使用实时市场数据执行这些任务,检查自身工作,并优化结果,直到得出有信心、有数据支持的答案。
**核心能力:**
- **智能任务规划**:自动将复杂查询分解为结构化的研究步骤
- **自主执行**:选择并执行正确的工具来收集金融数据
- **自我验证**:检查自身工作并迭代,直到任务完成
- **实时金融数据**:访问利润表、资产负债表和现金流量表
- **安全特性**:内置循环检测和步数限制,防止失控执行
[](https://twitter.com/virattt) [](https://discord.gg/jpGHv2XB6T)
## ✅ 前置条件
- [Bun](https://bun.com) 运行时(v1.0 或更高版本)
- OpenAI API key(在[此处](https://platform.openai.com/api-keys)获取)
- Financial Datasets API key(在[此处](https://financialdatasets.ai)获取)
- Exa API key(在[此处](https://exa.ai)获取)- 可选,用于网页搜索
#### 安装 Bun
如果您尚未安装 Bun,可以使用 curl 进行安装:
**macOS/Linux:**
```
curl -fsSL https://bun.com/install | bash
```
**Windows:**
```
powershell -c "irm bun.sh/install.ps1|iex"
```
安装完成后,重启终端并验证 Bun 是否已安装:
```
bun --version
```
## 💻 如何安装
1. 克隆仓库:
```
git clone https://github.com/virattt/dexter.git
cd dexter
```
2. 使用 Bun 安装依赖:
```
bun install
```
3. 设置环境变量:
```
# 复制示例环境文件
cp env.example .env
# 编辑 .env 并添加您的 API keys(如果使用云服务商)
# 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 (可选)
# 面向 agents 的机构级市场数据;AAPL, NVDA, MSFT 免费
# FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key
# (可选) 如果本地使用 Ollama
# OLLAMA_BASE_URL=http://127.0.0.1:11434
# Web Search (首选 Exa,Tavily 备用)
# EXASEARCH_API_KEY=your-exa-api-key
# TAVILY_API_KEY=your-tavily-api-key
```
## 🚀 如何运行
以交互模式运行 Dexter:
```
bun start
```
或者使用监听模式进行开发:
```
bun dev
```
## 📊 如何评估
Dexter 包含一个评估套件,用于针对一组金融问题数据集测试智能体。评估使用 LangSmith 进行跟踪,并采用 LLM-as-judge(LLM 作为评判者)方法对正确性进行评分。
**在所有问题上运行:**
```
bun run src/evals/run.ts
```
**在随机抽样数据上运行:**
```
bun run src/evals/run.ts --sample 10
```
评估运行器会显示实时 UI,展示进度、当前问题和运行中的准确率统计数据。结果会记录到 LangSmith 以供分析。
## 🐛 如何调试
Dexter 将所有工具调用记录到临时文件中,用于调试和历史跟踪。每次查询都会在 `.dexter/scratchpad/` 中创建一个新的 JSONL 文件。
**临时文件位置:**
```
.dexter/scratchpad/
├── 2026-01-30-111400_9a8f10723f79.jsonl
├── 2026-01-30-143022_a1b2c3d4e5f6.jsonl
└── ...
```
每个文件包含换行符分隔的 JSON 条目,跟踪:
- **init**:原始查询
- **tool_result**:每次工具调用,包含参数、原始结果和 LLM 摘要
- **thinking**:智能体推理步骤
**临时文件条目示例:**
```
{"type":"tool_result","timestamp":"2026-01-30T11:14:05.123Z","toolName":"get_income_statements","args":{"ticker":"AAPL","period":"annual","limit":5},"result":{...},"llmSummary":"Retrieved 5 years of Apple annual income statements showing revenue growth from $274B to $394B"}
```
这使得检查智能体收集的确切数据及其对结果的解释变得容易。
## 📱 如何配合 WhatsApp 使用
通过将您的手机链接到网关,即可通过 WhatsApp 与 Dexter 聊天。您发送给自己的消息将由 Dexter 处理,回复将发送回同一个聊天窗口。
**快速开始:**
```
# 关联您的 WhatsApp 账号 (扫描二维码)
bun run gateway:login
# 启动 gateway
bun run gateway
```
然后打开 WhatsApp,进入您自己的聊天(发消息给自己),并向 Dexter 提问。
有关详细的设置说明、配置选项和故障排除,请参阅 [WhatsApp 网关 README](src/gateway/channels/whatsapp/README.md)。
## 🤝 如何贡献
1. Fork 本仓库
2. 创建一个功能分支
3. 提交您的更改
4. 推送到该分支
5. 创建一个 Pull Request
**重要提示**:请保持您的 Pull Request 简小且专注。这将使其更容易被审查和合并。
## 📄 许可证
本项目根据 MIT 许可证授权。标签:AI风险缓解, Bun, Claude Code, DLL 劫持, Petitpotam, Python, 任务规划, 大语言模型, 实时市场数据, 投资分析, 无后门, 智能投研, 深度金融分析, 股票分析, 自主代理, 自动化攻击, 自动化攻击, 自我反思, 财务报表分析, 金融数据接口, 金融研究, 金融科技