Mole 深度研究代理 – 预算受控、引用验证的终端工具
Mole 直接从终端提供预算受控、引用验证的研究服务
Mole 会将自然语言问题进行分解,搜索网络,提取主张,根据来源核实每项主张,并合成一份包含丰富引用的答案——同时保证总成本绝不会超过用户指定的预算。
强制预算消除意外支出
每一次模型调用在执行前都会进行预留,并在执行后根据具有非负约束的账本进行结算。
- 使用
--usd 0.50在搜索 API 和 LLM 综合使用达到 50 美分后停止运行。 - 当模型定价未知时,使用
--tokens 200000设置仅限 Token 的上限。 - 该项目在其测试语料库中实现了 0% 超支,这意味着没有任何运行任务超过了上限。
"永远不要花超过你预算的钱" – 一位用户在 HN 上询问如何防止 LLM 超支。Mole 的预留系统保证了搜索和 LLM 成本的总和永远不会超过配置的限制;Token 限制和价格表会在每次调用前应用,且缓存不会影响预留逻辑。
原文引用验证保证主张的完整性
每项主张必须包含出现在源页面中的原文引用;否则该主张将被丢弃。
- 幸存的主张会连同其来源 URL 和精确引用一起存储。
- 在运行后的验证阶段,会根据来源重新读取主张;任何不匹配都会被标记,而不是被静默忽略。
- 报告的指标显示 100% 主张完整性 和 100% 引用准确性。
本地数据隐私边界
Mole 可以摄取 CSV、TSV、JSON、JSONL 或类 Parquet 文件(目前尚不支持 Parquet),而无需向 LLM 发送任何行数据。
- 模型仅接收假设模板和列名;它渲染确定性的 SQL 并返回聚合结果(计数、平均值、统计检验、≥ 5 条记录的分组)。
mole crossings命令会列出所有离开机器的信息。
安装 – 单个静态二进制文件,多种包管理器
| 方法 | 平台 | 备注 |
|---|---|---|
| 脚本 (curl) | Linux/macOS, amd64 & arm64 | 验证 SHA-256,安装至 ~/.local/bin 或 /usr/local/bin |
| Homebrew | macOS & Linux | brew install lajosdeme/mole/mole (与无关的 mole 工具冲突) |
| AUR | Arch Linux | yay -S mole-research-bin (预构建) 或 yay -S mole-research (从源码构建) |
| .deb/.rpm | Debian/Ubuntu | 从发布页面下载 |
go install |
任何支持 Go 1.25+ 的操作系统 | go install github.com/lajosdeme/mole/cmd/mole@latest |
所有发行版都生成两个静态二进制文件 (mole 和 mole-mcp),没有运行时依赖;SQLite 账本在首次使用时创建于 XDG 数据目录下。
配置 – API 密钥安全地存储在磁盘上
mole config set search.provider tavily # 或 brave
mole config set search.tavily-key <key>
mole config set llm.provider anthropic # 或 openai-compatible
mole config set llm.api-key <key>
mole config set llm.model claude-sonnet-5
mole config set llm.cheap-model claude-haiku-4-5
mole doctor # 验证配置
密钥存储在 ~/.config/mole/config.json 中,权限模式为 0600,绝不存储在环境变量中。任何 OpenAI 兼容的端点(DeepSeek, Ollama, vLLM 等)均可使用,且可以使用本地托管的模型,在不产生货币成本的同时仍计算 Token 以进行预算执行。
核心使用模式
1. 自主深度研究
mole research "how much electricity does the bitcoin network use?" --usd 0.50
- 该工具在单次运行中完成规划、搜索、提取、验证和回答。
- 选项:
--max-sources、--max-depth、--json(用于机器可读输出)。
2. 无额外支出的后续查询
mole ask <session-id> "what did the Cambridge estimate say?"
- 复用之前收集的主张;只需一次 LLM 调用即可组织答案。
3. 结构化数据集提取
mole research "largest UK supermarket chains and their revenue" \
--mode dataset \
--schema 'company:text!,revenue:number=annual revenue in GBP,employees:number' \
--usd 0.50
mole dataset <session-id> --format csv > chains.csv
- 行数据会跨来源合并;CSV 会包含一个
contested列,用于标记值存在分歧的字段。
3. 本地文件的私密分析
mole connect add sales./exports/sales.csv
mole research "how does spend differ between regions?" --actors local_compute --usd 0.30
mole crossings <session-id>
- LLM 从未见过原始行;仅返回聚合统计数据。
MCP 服务器模式 – 为编程代理提供编程访问
mole serve # 监听于私有 Unix socket
客户端配置其 mcpServers 指向 mole-mcp。客户端配置中不存储凭据;守护进程会安全地持有它们。
工具包模式 – 让周围的代理拥有模型
mole serve --toolkit
- 外部编程代理使用其自身的模型进行推理;Mole 提供确定性操作(搜索、引用验证、SQL 渲染)。这在配合 Claude Code、Qwen Code 或任何已支付模型 Token 费用的订阅服务使用时非常理想。
透明度 – 来自真实运行的诚实指标
| 指标 | 数值 |
|---|---|
| 预算超支 | 0% |
| 主张完整性 | 100% |
| 引用准确性 | 100% |
| Grounding 率 (主张重读) | 80% |
| 矛盾精确度 | 70% (带有确认环节) |
| 合并精确度 / 召回率 | 1.000 / 1.000 |
这些数字由 mole eval <session-id> 生成;任何无法计算的指标都会报告为不可用,而不是静默默认为零。
来自 Hacker News 的社区反馈
- 利益冲突说明 – 一位评论者链接到了另一个名为 “Mole” 的不同项目 (tw93/Mole),并警告可能存在命名混淆。
- 预算处理问题 – 一位用户询问如何将意外的 LLM Token 使用控制在预算内;答案是 Mole 在每次调用前会预留成本并封顶总支出,而 Token 限制提供了额外的安全网。
- 功能与代码比 – 一条评论称该代码库是“实现一个相当基础的功能却用了大量代码”,反映出实现方式相对于其核心功能显得过于沉重。
- 关于诚实的幽默 – 一条轻松的评论称赞了“诚实的数字”部分,强调了项目的透明度。
- 澄清 – 用户询问与普通网络搜索相比,“深度研究”意味着什么;Mole 的流水线(规划、主张提取、验证、矛盾检测)使其区别于简单的检索。
贡献与质量标准
- Pull requests 需要签署贡献者许可协议 (CLA)。
- 项目执行 falsify-your-own-fix:更改后,撤销机制并确认测试失败。
- 代码必须通过
gofmt -l.、go build./...和go test./...且无跳过。
许可证
Mole 根据 Apache-2.0 许可证发布。
Sources
相关
- Dispatch
- Dispatch
- 项目
- 项目
- Dispatch