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

所有发行版都生成两个静态二进制文件 (molemole-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