运维123 - HTTP代理
type: channel
link: https://www.sddts.cn/index.php/tag/HTTP%E4%BB%A3%E7%90%86/
items: Sherlock LLM Token 追踪工具技术分析

Sherlock LLM Token 追踪工具技术分析
type: item
date: 2026-01-29T07:43:38+00:00
description: Sherlock LLM Token 追踪工具技术分析一、概述1. 简介A. 是什么Sherlock 是一个专为 LLM CLI 工具设计的 Token 追踪器，通过实时终端仪表盘拦截和可视化 LLM API 流量，帮助开发者跟踪成本、调试提示词并监控上下文窗口使用情况。B. 为什么需要随着 LLM 应用开发日益普及，开发者面临以下挑战：Token 消耗难以精确跟踪，导致成本超预算上下文窗口使用情况不透明，容易超出限制提示词调试缺乏有效工具，难以优化性能需要零配置的解决方案，避免复杂的证书设置C. 能做什么实时追踪每次请求的 Token 消耗量可视化显示上下文窗口使用率的燃料仪表盘自动保存所有提示词为 Markdown 和 JSON 格式无需证书或复杂配置，安装即用2. 前置知识A. 必备技能基本的终端命令行操作Python 环境管理和包安装了解 LLM API 基本概念（Token、上下文窗口）B. 推荐知识HTTP 代理原理Claude Code、Gemini CLI 等 LLM CLI 工具的使用二、环境准备1. 系统要求Python 3.10 或更高版本macOS、Linux 或 Windows 操作系统支持的 LLM CLI 工具：Claude Code、OpenAI Codex、Gemini CLI2. 安装步骤通过 Git 克隆并安装：git clone https://github.com/jmuncor/sherlock.git cd sherlock pip install -e .3. 验证安装sherlock --help三、核心概念1. 基本术语Token：LLM 处理文本的基本单位，消耗与计费依据上下文窗口：单次对话允许的最大 Token 数量HTTP 代理：拦截和转发 LLM API 请求的中介服务燃料仪表盘：可视化显示 Token 使用率的进度条2. 工作原理Sherlock 通过本地 HTTP 代理拦截 LLM CLI 工具的 API 请求，解析 Token 使用情况，并在终端仪表盘实时展示。graph TB A[终端1: sherlock start] --> B[HTTP代理 localhost:8080] B --> C[仪表盘] B --> D[提示词归档] E[终端2: sherlock claude] --> F[设置环境变量] F --> G[运行claude命令] G --> B B -->|HTTPS转发| H[api.anthropic.com]3. 架构设计graph LR A[LLM CLI工具] -->|HTTP请求| B[Sherlock代理] B -->|解析Token| C[仪表盘显示] B -->|保存| D[Markdown文件] B -->|保存| E[JSON文件] B -->|转发| F[LLM API] F -->|响应| B B -->|返回| A四、快速上手1. 启动仪表盘在第一个终端启动 Sherlock：sherlock start首次运行时会提示选择提示词保存目录，然后显示仪表盘：┌─────────────────────────────────────────────────────────────┐ │ SHERLOCK - LLM Traffic Inspector │ ├─────────────────────────────────────────────────────────────┤ │ Context Usage ████████████░░░░░░░░░░░░░░░░ 42% │ │ (84,231 / 200,000 tokens) │ ├─────────────────────────────────────────────────────────────┤ │ Time Provider Model Tokens│ │ 14:23:01 Anthropic claude-sonnet-4-20250514 12,847│ │ 14:23:45 Anthropic claude-sonnet-4-20250514 8,234│ │ 14:24:12 Anthropic claude-sonnet-4-20250514 15,102│ ├─────────────────────────────────────────────────────────────┤ │ Last Prompt: "Can you help me refactor this function..." │ └─────────────────────────────────────────────────────────────┘2. 运…