Mole 심층 연구 에이전트 – 예산 제한, 인용 검증 기반 터미널 도구
Mole은 예산 제한, 인용 검증 기반 연구를 터미널에서 직접 제공합니다
Mole은 자연어 질문을 분해하고, 웹을 검색하며, 주장들을 추출하고, 각 주장이 원본과 일치하는지 확인한 후, 인용이 풍부한 답변을 종합합니다. 이 과정에서 사용자가 지정한 예산을 초과하지 않도록 보장합니다.
예산 강제로 예상치 못한 지출 방지
모든 모델 호출은 실행 전에 예약되고, 실행 후에 원장에 기록되며, 음수를 허용하지 않는 제약 조건을 적용합니다.
--usd 0.50을 사용하여 검색 API와 LLM 사용의 총합이 50센트에 도달하면 실행을 중단합니다.- 모델의 가격이 알려지지 않은 경우
--tokens 200000으로 토큰 수만의 상한선을 설정합니다. - 프로젝트는 테스트 코퍼스에서 0 % 초과를 보고하며, 어떤 실행도 상한선을 초과한 적이 없습니다.
"예산을 초과해서 지출하지 마세요" – HN에서 한 사용자가 LLM의 과도한 사용을 어떻게 방지하는지 묻는 질문을 했습니다. Mole의 예약 시스템은 검색 비용과 LLM 비용의 합계가 구성된 한도를 초과하지 않도록 보장합니다. 토큰 한도와 가격표는 각 호출 전에 적용되며, 캐싱은 예약 로직에 영향을 주지 않습니다.
정확한 인용 검증으로 주장의 무결성 보장
모든 주장은 원본 페이지에 정확히 포함된 인용문이 있어야 하며, 그렇지 않으면 주장은 폐기됩니다.
- 생존한 주장은 원본 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 이상을 지원하는 모든 OS | 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 호환
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 등)는 모두 작동하며, 로컬에서 호스팅된 모델은 비용이 0원이지만 여전히 예산 강제를 위해 토큰 수를 계산합니다.
핵심 사용 패턴
1. 자율적인 심층 연구
mole research "비트코인 네트워크는 얼마나 많은 전기를 사용합니까?" --usd 0.50
- 도구는 한 번의 실행으로 계획, 검색, 추출, 검증, 답변을 수행합니다.
- 옵션:
--max-sources,--max-depth,--json(기계가 읽을 수 있는 출력)
2. 추가 비용 없이 후속 질문
mole ask <session-id> "케임브리지 추정치는 무엇이라고 했습니까?"
- 이전에 수집된 주장들을 재사용하며, 답변을 구성하기 위해 단일 LLM 호출만 필요합니다.
3. 구조화된 데이터셋 추출
mole research "영국에서 가장 큰 슈퍼마켓 체인과 그 수익" \
--mode dataset \
--schema 'company:text!,revenue:number=annual revenue in GBP,employees:number' \
--usd 0.50
mole dataset <session-id> --format csv > chains.csv
- 여러 출처에서 행을 병합하며, 값이 다른 필드는
contested열에 포함됩니다.
4. 로컬 파일의 개인 분석
mole connect add sales ./exports/sales.csv
mole research "지역 간 지출 차이는 어떻게 다릅니까?" --actors local_compute --usd 0.30
mole crossings <session-id>
- LLM은 원시 행을 절대 보지 않습니다. 반환되는 것은 집계된 통계뿐입니다.
MCP 서버 모드 – 프로그래밍 가능한 접근 방식 (코딩 에이전트용)
mole serve # 개인 Unix 소켓에서 수신 대기
클라이언트는 mcpServers를 mole-mcp로 설정합니다. 클라이언트 구성에 자격 증명을 저장하지 않으며, 데몬이 이를 안전하게 보관합니다.
툴킷 모드 – 주변 에이전트가 모델을 관리하도록 함
mole serve --toolkit
- 외부 코딩 에이전트는 자신의 모델로 추론을 수행합니다. Mole은 결정론적 작업(검색, 인용 검증, SQL 렌더링)을 제공합니다. 클라우드 코드, Qwen 코드, 또는 모델 토큰이 이미 지불된 구독 서비스를 사용할 때 이상적입니다.
투명성 – 실제 실행에서 나온 솔직한 지표
| 지표 | 값 |
|---|---|
| 예산 초과 | 0 % |
| 주장 무결성 | 100 % |
| 인용 정확도 | 100 % |
| 기반율 (주장 재읽기) | 80 % |
| 모순 정밀도 | 70 % (확인 단계 포함) |
| 병합 정밀도 / 재현율 | 1.000 / 1.000 |
이 수치는 mole eval <session-id>로 생성되며, 계산할 수 없는 지표는 0으로 암시적으로 설정되지 않고, '사용 불가능'으로 보고됩니다.
허커 뉴스 커뮤니티 피드백
- 이익 충돌 주의 – 한 사용자가 다른 프로젝트인 "Mole"(tw93/Mole)을 링크하며 이름 혼동 가능성에 대해 경고했습니다.
- 예산 처리 질문 – 한 사용자가 예상치 못한 LLM 토큰 사용이 예산 내에 유지되는 방법을 묻는 질문을 했습니다. 답변은 Mole이 각 호출 전에 비용을 예약하고 총 지출을 제한하며, 토큰 한도가 추가적인 안전장치 역할을 한다는 것입니다.
- 기능 대 코드 비율 – 한 댓글에서 코드베이스가 "매우 기본적인 기능에 비해 너무 많은 코드"라고 평가되었으며, 핵심 기능에 비해 구현이 무거운 인상이 있다는 평가를 반영했습니다.
- 솔직함에 대한 유머 – 경쾌한 댓글에서 "솔직한 수치" 섹션을 칭찬하며 프로젝트의 투명성을 강조했습니다.
- 설명 요청 – 사용자들이 "심층 연구"가 일반 웹 검색과 어떻게 다른지 묻는 질문을 했습니다. Mole의 파이프라인(계획, 주장 추출, 검증, 모순 탐지)이 단순 검색과 구분됨을 설명했습니다.
기여 및 품질 기준
- 풀 리퀘스트는 기여자 라이선스 동의서가 필요합니다.
- 프로젝트는 자신의 수정을 스스로 실패시켜라를 강제합니다: 변경 후 메커니즘을 되돌려 테스트가 실패함을 확인해야 합니다.
- 코드는
gofmt -l .,go build ./...,go test ./...를 모두 통과해야 하며, 스킵 없이 실행되어야 합니다.
라이선스
Mole는 Apache-2.0 라이선스 하에 배포됩니다.
Sources
관련
- Dispatch
- Dispatch
- 프로젝트
- 프로젝트
- Dispatch