touch-browser
touch-browser

주장을 제시하세요. 페이지 기반 증거, 판정 및 인용을 얻으세요.
touch-browser는 AI 에이전트를 위한 증거 검증 계층입니다. 단순히 페이지를 가져오거나 HTML을 마크다운으로 변환하는 것 이상의 기능을 수행합니다. 페이지를 열고 구조화된 스냅샷을 컴파일하며, 현재 페이지가 주장을 뒷받침하는지, 반박하는지, 아니면 더 많은 브라우징이 필요한지 알려줍니다.
다음과 같은 경우에 사용하세요:
원시 HTML 덤프 대신 소스 링크가 포함된 증거가 필요할 때
에이전트가 답변하기 전에 검토할 수 있는 지원 스니펫과 판정 설명이 필요할 때
모호한 주장에 대해 허풍을 떠는 대신 안전한 미해결 경로를 제공해야 할 때
맹목적인 자동화 대신 정책 기반 브라우징이 필요할 때
재현 가능하고 감사가 가능한 다중 페이지 연구 세션이 필요할 때
사실 확정이 아닌 증거 우선:
touch-browser는 AI가 페이지 내 증거를 수집하고 그 출처를 추적하도록 돕습니다.상위 수준의 모델이나 인간이 페이지 간 또는 더 넓은 세계 전반에 걸쳐 무엇이 진실인지 결정합니다.
extract가 반환하는 것
현재 추출기의 약식 claimOutcome 형태:
{
"statement": "The Starter plan costs $29 per month.",
"verdict": "evidence-supported",
"confidenceBand": "high",
"reviewRecommended": false,
"supportSnippets": [
{
"blockId": "b4",
"stableRef": "rmain:table:plan-monthly-price-snapshots-starter-29-10-000-t",
"snippet": "Starter | $29 | 10,000"
}
],
"verdictExplanation": "Matched direct support in 3 page block(s). Review the attached snippets before reusing the claim."
}추출기는 네 가지 판정을 반환합니다:
evidence-supported: 현재 페이지에서 사용 가능한 지원 증거를 발견함contradicted: 현재 페이지에서 상충되는 증거를 발견함insufficient-evidence: 현재 페이지가 충분한 직접적 지원을 제공하지 않음needs-more-browsing: 현재 페이지가 아직 충분히 구체적이지 않으므로 다음 단계로 다른 페이지가 필요함
confidenceBand, reviewRecommended, supportSnippets, verdictExplanation 및 matchSignals가 포함되어 있어 에이전트가 첫 번째 일치 항목을 맹목적으로 신뢰하지 않고 다음에 무엇을 할지 결정할 수 있습니다.
MCP 패키지
기본 로컬 호스트 MCP 경로:
npm 패키지:
@nangman-infra/touch-browser-mcp범위: 공개 문서 및 연구 웹
MCP 계약: 헤드리스 전용, 자동 검색 엔진 선택, 챌린지/인증/MFA에 대한 감독된 복구 핸드오프
권장 호스트 구성:
{
"mcpServers": {
"touch-browser": {
"command": "npx",
"args": ["-y", "@nangman-infra/touch-browser-mcp"]
}
}
}최초 실행 시, 패키지는 GitHub Releases에서 일치하는 독립형 런타임 번들을 다운로드하고, 게시된 .sha256을 확인하며, ~/.touch-browser/npm-mcp/versions/ 아래에 설치한 다음 touch-browser mcp를 시작합니다.
Claude Desktop, Cursor 또는 Codex와 같은 로컬 MCP 호스트가 별도의 수동 런타임 설치 없이 연결되기를 원할 때 이 패키지를 사용하세요.
독립형 번들
v* 태그가 지정된 푸시는 이제 Standalone Release 워크플로우에서 독립형 macOS 및 Linux 번들을 빌드합니다. 각 번들에는 다음이 포함됩니다:
bin/touch-browserruntime/touch-browser-bin아래의 최적화된 Rust 바이너리번들로 제공되는 Node 런타임 및 Playwright 어댑터
기본 의미론적 러너 스크립트 및 모델 캐시
태그가 지정된 릴리스가 게시되면 GitHub Releases에서 일치하는 tarball을 다운로드하고 압축을 푼 다음 실행하세요:
./touch-browser-<version>-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check동일한 휴대용 번들을 로컬에서 빌드하려면:
pnpm install --frozen-lockfile
pnpm run build:standalone-bundle -- v0.1.0-rc1
# Then install the bundled command into PATH
./dist/standalone/touch-browser-v0.1.0-rc1-<platform>-<arch>/install.sh
touch-browser telemetry-summary
touch-browser update --check독립형 경로는 여전히 공식 CLI, 운영, 오프라인 및 대체 설치 경로입니다:
독립형 번들 압축 해제
install.sh실행모든 CLI 및 서비스 작업에 설치된
touch-browser명령 사용
설치 프로그램은 이제 관리형 설치를 수행합니다:
관리형 버전은
~/.touch-browser/install/versions/<bundle-name>아래에 위치함활성 버전은
~/.touch-browser/install/current임PATH 명령은
~/.touch-browser/install/current/bin/touch-browser를 가리킴touch-browser update는current를 새로 확인된 릴리스 번들로 교체함touch-browser uninstall --purge-all --yes는 관리형 설치와 모든 저장된 데이터를 제거함
첫 실행
다음은 설치된 사용자 경험과 일치하는 명령 전용 증명 경로입니다:
touch-browser open https://www.iana.org/help/example-domains --browser --session-file /tmp/tb-first-run.json
touch-browser session-read --session-file /tmp/tb-first-run.json --main-only
touch-browser session-extract --session-file /tmp/tb-first-run.json \
--claim "As described in RFC 2606 and RFC 6761, a number of domains such as example.com and example.org are maintained for documentation purposes."
touch-browser session-synthesize --session-file /tmp/tb-first-run.json --format markdown
touch-browser session-close --session-file /tmp/tb-first-run.json설치된 검색은 이제 기본적으로 엔진 수준의 지속적인 신뢰 프로필을 유지합니다:
Google:
~/.touch-browser/browser-search/profiles/google-defaultBrave:
~/.touch-browser/browser-search/profiles/brave-default프로필 상태 메타데이터:
~/.touch-browser/browser-search/<engine>.profile-state.json
소스에서 기여자 빌드
전제 조건: rustup, Node.js 18+, pnpm.
bash scripts/bootstrap-local.sh
cargo build --release -p touch-browser-cli
pnpm run build:standalone-bundle -- local-dev
./dist/standalone/touch-browser-local-dev-<platform>-<arch>/install.sh소스 체크아웃은 기여자 워크플로우입니다. 릴리스 및 운영 문서는 여전히 독립형 번들에서 설치된 touch-browser 명령을 가정합니다.
bootstrap-local.sh는 다음 위치에 기본 의미론적 모델을 설치합니다:
~/.touch-browser/models/evidence/embedding~/.touch-browser/models/evidence/nli
해당 기본 위치를 재정의해야 하는 경우에만 TOUCH_BROWSER_EVIDENCE_EMBEDDING_MODEL_PATH 또는 TOUCH_BROWSER_EVIDENCE_NLI_MODEL_PATH를 사용하세요.
왜 마크다운만으로는 안 되나요?
touch-browser는 모든 크롤러나 브라우저 도구를 대체하려는 것이 아닙니다. 이 도구의 작업은 페이지 획득 후에 시작됩니다.
필요 사항 | 마크다운 전용 가져오기 | touch-browser |
페이지 읽기 | 예 | 예 |
소스 링크된 블록 참조 유지 | 부분적 | 예 |
페이지가 주장을 뒷받침하는지 판단 | 아니요 | 예 |
반박 및 미해결 상태 반환 | 아니요 | 예 |
지원 스니펫 및 판정 설명 제공 | 아니요 | 예 |
에이전트에게 답변 대신 에스컬레이션 지시 | 아니요 | 예 |
제품 표면
주요 표면:
extract: 현재 페이지에 대해 주장을 검증하고 구조화된 주장 결과를 반환
지원 읽기 표면:
read-view: 인간 검토자 또는 검증자 모델을 위한 읽기 쉬운 마크다운compact-view: 에이전트 루프를 위한 저토큰 의미론적 상태search: 후보 페이지를 열기 전 구조화된 발견
안전 및 감사 표면:
policy: 페이지 및 작업을 허용, 검토 또는 차단으로 분류session-synthesize: 다중 페이지 세션을 인용이 포함된 JSON 또는 마크다운으로 변환serve: MCP 또는 에이전트 통합을 위해 stdio JSON-RPC를 통해 런타임 노출
touch-browser란 무엇인가
증거 우선 추출기
선택적 예측 표면
검증자 친화적인 라우팅 계층
touch-browser가 아닌 것
보편적 진실 오라클
범용 크롤러 대체품
뒷받침되지 않는 모든 주장이 거짓이라는 보장
MCP 예시
로컬 호스트를 위한 권장 MCP 설정:
{
"mcpServers": {
"touch-browser": {
"command": "npx",
"args": ["-y", "@nangman-infra/touch-browser-mcp"]
}
}
}MCP 패키지는 전체 CLI보다 의도적으로 더 좁은 범위를 가집니다:
범위는 공개 문서 및 연구 웹으로 제한됨
권장 루프는
tb_search -> tb_search_open_top -> tb_read_view -> tb_extract임engine은 MCP를 통해 노출되지 않음headed는 MCP를 통해 노출되지 않음페이지가 챌린지, 인증, MFA 또는 기타 감독된 복구를 나타내는 경우, 다른 브라우저 설정으로 재시도하는 대신 중단하고 인간에게 넘김
설치된 독립형 명령을 위한 대체 MCP 브리지 설정:
{
"mcpServers": {
"touch-browser": {
"command": "touch-browser",
"args": ["mcp"]
}
}
}브리지는 내부적으로 touch-browser serve를 시작하고 tb_search, tb_search_open_top, tb_open, tb_read_view, tb_extract, tb_tab_open 및 tb_session_synthesize와 같은 도구를 노출합니다.
저장소 체크아웃 통합 자산:
{
"mcpServers": {
"touch-browser": {
"command": "node",
"args": ["integrations/mcp/bridge/index.mjs"]
}
}
}독립형 번들은 touch-browser mcp 및 touch-browser serve를 제공합니다. 체크인된 Node 런처는 저장소 체크아웃 또는 컨테이너 이미지를 위한 저장소 통합 자산으로 유지됩니다.
기본적으로 브리지는 명시적인 TOUCH_BROWSER_SERVE_COMMAND, 그 다음 명시적인 바이너리 경로, 그 다음 설치되거나 패키징된 touch-browser 바이너리, 그 다음 저장소 로컬 target/{release,debug} 바이너리를 선호합니다. 아무것도 사용할 수 없는 경우 cargo run으로 돌아가는 대신 설치/빌드 지침과 함께 빠르게 실패합니다.
특정 빌드된 바이너리나 래퍼 명령을 강제하려면 TOUCH_BROWSER_SERVE_COMMAND를 사용하세요.
아키텍처
Query / URL / fixture / browser tab
-> browser-first search result parsing
-> Acquisition
-> Observation compiler
-> read-view / compact-view
-> extract (evidence + citations + optional verifier)
-> policy
-> session synthesis / replay
-> CLI / JSON-RPC serve / MCP문서 및 증명
빠른 시작 및 운영: doc/INSTALL_AND_OPERATIONS.md
명령 표면: doc/CLI_SURFACE_SPEC.md
증거 운영 모델: doc/EVIDENCE_OPERATING_MODEL.md
npm MCP 패키지: packages/mcp/README.md
벤치마크 및 포지셔닝: doc/README.md
파일럿 및 운영 패키지: doc/PILOT_PACKAGE_SPEC.md, doc/OPERATIONS_SECURITY_PACKAGE_SPEC.md
라이선스
이 저장소는 이제 MPL-2.0을 사용합니다.
상업적 및 비상업적 사용이 허용됩니다.
수정된 MPL 적용 파일을 배포하는 경우, 해당 적용 파일은
MPL-2.0하에 유지됩니다.더 큰 작업 내의 별도 파일은 다른 약관을 사용할 수 있습니다.
전체 법적 텍스트: LICENSE
평이한 언어 정책: LICENSE-POLICY.md
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nangman-infra/touch-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server