llm-tldr

GitHub
1.1k 108 非常简单 1 次阅读 昨天AGPL-3.0语言模型开发框架Agent插件
AI 解读 由 AI 自动生成,仅供参考

llm-tldr 是一款专为 AI 智能体设计的代码分析工具,旨在让大语言模型(LLM)在理解大型代码库时,只获取最核心的信息。面对动辄数万行的项目代码,直接输入给 LLM 不仅容易超出上下文限制,还会因充斥大量无关细节导致模型“迷失”。llm-tldr 通过提取代码结构而非堆砌原始文本,能减少 95% 的 Token 消耗,并将查询速度提升 155 倍,同时支持 16 种编程语言。

该工具特别适合需要利用 AI 辅助编程、重构或调试的开发者及研究人员。其核心技术亮点在于构建了五层深度分析架构:从基础的抽象语法树(AST)到调用图、控制流、数据流,直至程序依赖图。这种分层设计让用户可以根据任务需求(如浏览结构或追踪变量来源)灵活获取不同深度的信息。此外,llm-tldr 引入了语义搜索层,利用嵌入向量将代码的功能行为转化为可检索的索引。这意味着用户可以用自然语言描述功能(例如“验证 JWT 令牌”),即使代码中没有完全匹配的关键词,也能精准定位到相关函数。配合常驻内存的守护进程,它能实现毫秒级的快速响应,真正做到了“按需供给”,让 AI 高效读懂你的代码。

使用场景

某后端工程师需要在拥有 10 万行代码的遗留微服务项目中,快速定位并修复一个涉及 JWT 令牌验证逻辑的安全漏洞。

没有 llm-tldr 时

  • 上下文溢出:试图将整个模块代码喂给大模型时,远超 Token 限制,导致关键逻辑被截断或被迫手动删减代码。
  • 大海捞针:传统文本搜索只能匹配关键字,无法找到名为 verify_access_token 但注释未提及"JWT"的核心函数,遗漏关键调用链。
  • 盲目修改风险:不清楚该函数被哪些上游服务调用,重构时极易引发未知的连锁崩溃,需人工逐层追踪依赖。
  • 响应迟缓:每次询问代码结构都需重新解析文件,大模型在无关的样板代码中“迷路”,生成建议耗时且不准确。

使用 llm-tldr 后

  • 精准投喂:llm-tldr 自动提取代码结构而非全文,节省 95% 的 Token,让大模型在有限的上下文窗口内完整掌握核心逻辑。
  • 语义直达:通过语义搜索"validate JWT tokens",直接定位到 verify_access_token 函数,即使代码中无完全匹配的文本也能精准命中。
  • 依赖可视:利用第 5 层程序依赖分析,瞬间生成影响范围图谱,明确展示谁调用了该函数,确保修复方案安全无副作用。
  • 毫秒响应:后台守护进程将索引驻留内存,查询速度从数十秒缩短至 100 毫秒,让开发者能像对话一样实时探索代码库。

llm-tldr 通过将庞大的代码库转化为结构化、可语义搜索的精简摘要,让大模型真正具备了理解复杂工程全貌的能力。

运行环境要求

操作系统
  • 未说明 (基于 Python 和 pip 安装,通常支持 Linux
  • macOS
  • Windows)
GPU
  • 非必需
  • 语义搜索功能使用 CPU 版本的 FAISS (faiss-cpu) 和 sentence-transformers,README 中未提及需要 GPU 或 CUDA
内存

未说明 (守护进程将索引保留在内存中以实现快速查询,具体需求取决于项目代码库的大小)

依赖
notes该工具通过构建 5 层代码分析(AST、调用图、控制流、数据流、程序依赖)来压缩代码上下文。首次运行 'tldr warm' 命令会为项目建立索引并启动后台守护进程,典型项目耗时 30-60 秒。语义搜索功能会使用 bge-large-en-v1.5 模型生成嵌入向量,相关依赖在安装时自动包含。支持多种编程语言(Python, TS, Go, Rust 等),并通过 .tldrignore 文件排除无关目录。
python3.8+ (根据 PyPI 徽章推断,具体版本需参考 pypi.org/project/llm-tldr/)
tree-sitter
sentence-transformers
faiss-cpu
bge-large-en-v1.5 (模型)
llm-tldr hero image

快速开始

TLDR:面向 AI 代理的代码分析

PyPI Python License

为大语言模型提供它们真正需要的代码,不多也不少。

# 一行命令:安装、索引、搜索
pip install llm-tldr && tldr warm . && tldr semantic "你想要查找的内容" .

你的代码库有 10 万行。Claude 的上下文窗口是 20 万 token。原始代码根本放不下——即使放得下,大语言模型也会被无关细节淹没。

TLDR 不会直接输出文本,而是提取代码的结构。结果是:在保留理解与正确编辑代码所需信息的同时,token 数量减少了 95%

pip install llm-tldr
tldr warm .                    # 索引你的项目
tldr context main --project .  # 获取适合大语言模型的摘要

工作原理

TLDR 构建了 5 层分析,每一层回答不同的问题:

┌─────────────────────────────────────────────────────────────┐
│ 第 5 层:程序依赖关系 → “第 42 行受哪些内容影响?”      │
│ 第 4 层:数据流           → “这个值会流向哪里?”          │
│ 第 3 层:控制流        → “这段代码有多复杂?”             │
│ 第 2 层:调用图          → “哪些地方会调用这个函数?”     │
│ 第 1 层:抽象语法树     → “有哪些函数存在?”              │
└─────────────────────────────────────────────────────────────┘

为什么采用多层设计? 不同的任务需要不同深度的信息:

  • 浏览代码?只需第 1 层(结构)。
  • 重构?第 2 层(调用图)能显示哪些部分会受到影响。
  • 调试空指针问题?第 5 层(切片)只展示相关代码行。

守护进程将索引常驻内存,实现100 毫秒级查询,而无需每次通过 CLI 启动耗时 30 秒的进程。

架构

┌──────────────────────────────────────────────────────────────────┐
│                         你的代码                                │
│  src/*.py, lib/*.ts, pkg/*.go                                    │
└───────────────────────────┬──────────────────────────────────────┘
                            │ tree-sitter
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│                     5 层分析                             │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐     │
│  │   AST   │→│  Calls  │→│   CFG   │→│   DFG   │→│   PDG   │     │
│  │   L1    │ │   L2    │ │   L3    │ │   L4    │ │   L5    │     │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘     │
└───────────────────────────┬──────────────────────────────────────┘
                            │ bge-large-en-v1.5
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│                    语义索引                                │
│  1024 维嵌入存储于 FAISS 中 → “查找 JWT 验证”                  │
└───────────────────────────┬──────────────────────────────────────┘
                            │
                            ▼
┌──────────────────────────────────────────────────────────────────┐
│                       守护进程                                     │
│  内存中索引  •  100 毫秒查询  •  自动生命周期管理          │
└──────────────────────────────────────────────────────────────────┘

语义层:按行为搜索

真正的强大之处在于将所有 5 层结合成可搜索的嵌入。

每个函数都会被索引以下内容:

  • 函数签名 + 文档字符串(L1)
  • 它调用了什么以及谁调用了它(L2)
  • 复杂度指标(L3)
  • 数据流模式(L4)
  • 依赖关系(L5)
  • 实际代码的前 10 行左右

这些信息会被使用 bge-large-en-v1.5 编码为 1024 维向量。结果是:可以根据代码的行为进行搜索,而不仅仅是它的文字描述。

# “验证 JWT” 会找到 verify_access_token(),即使代码中没有完全匹配的文字
tldr semantic "验证 JWT 令牌并检查过期时间" .

为何有效? 传统搜索只会根据变量名和注释找到“authentication”。而语义搜索则能理解 verify_access_token() 确实 执行了 JWT 验证,因为调用图和数据流揭示了它的实际用途。

设置语义搜索

# 构建语义索引(一次性操作,典型项目约需 2 分钟)
tldr warm /path/to/project

# 按行为搜索
tldr semantic "数据库连接池" .

嵌入所需的依赖项(sentence-transformersfaiss-cpu)已包含在 pip install llm-tldr 中。索引会缓存在 .tldr/cache/semantic.faiss 文件中。

保持索引最新

守护进程会跟踪脏文件,并在发生 20 次更改后自动重建索引,但你需要在文件变更时通知它:

# 通知守护进程文件已更改
tldr daemon notify src/auth.py --project .

集成方式:

  1. Git 钩子(提交后):

    git diff --name-only HEAD~1 | xargs -I{} tldr daemon notify {} --project .
    
  2. 编辑器钩子(保存时):

    tldr daemon notify "$FILE" --project .
    
  3. 手动重建(必要时):

    tldr warm .  # 完整重建
    

守护进程会在脏文件数量达到默认阈值(20 个)后,在后台自动重建语义嵌入。


工作流程

阅读代码之前

tldr tree src/                      # 查看文件结构
tldr structure src/ --lang python   # 查看函数和类

编辑代码之前

tldr extract src/auth.py            # 完整文件分析
tldr context login --project .      # 适合大语言模型的摘要(节省 95% token)

重构之前

tldr impact login .                 # 哪些地方会调用此函数?(反向调用图)
tldr change-impact                  # 需要运行哪些测试?

调试

tldr slice src/auth.py login 42     # 第 42 行受哪些内容影响?
tldr dfg src/auth.py login          # 追踪数据流

按行为查找代码

tldr semantic "验证 JWT 令牌" .   # 自然语言搜索

快速设置

1. 安装

pip install llm-tldr

2. 索引你的项目

tldr warm /path/to/project

这会构建所有分析层并启动守护进程。对于典型项目,耗时 30–60 秒,之后查询即可立即响应。

3. 开始使用

tldr context main --project .   # 获取某个函数的上下文
tldr impact helper_func .       # 查看谁调用了它
tldr semantic "错误处理"  # 按行为查找

真实案例:为什么这很重要

场景: 调试为什么第42行的user是空值。

不使用TLDR:

  1. 阅读这个150行的函数
  2. 手动跟踪每个变量
  3. 因为bug隐藏在控制流中而错过它

使用TLDR:

tldr slice src/auth.py login 42

输出: 只有6行代码影响到第42行:

3:   user = db.get_user(username)
7:   if user is None:
12:      raise NotFound
28:  token = create_token(user)  # ← BUG:跳过了空值检查
35:  session.token = token
42:  return session

bug很明显。第28行直接使用了user,却没有经过空值检查的逻辑分支。


命令参考

探索

命令 功能
tldr tree [path] 文件树
tldr structure [path] --lang <lang> 函数、类、方法
tldr search <pattern> [path] 文本模式搜索
tldr extract <file> 整个文件分析

分析

命令 功能
tldr context <func> --project <path> LLM友好的摘要(节省95%)
tldr cfg <file> <function> 控制流图
tldr dfg <file> <function> 数据流图
tldr slice <file> <func> <line> 程序切片

跨文件

命令 功能
tldr calls [path] 构建调用图
tldr impact <func> [path] 查找所有调用者(反向调用图)
tldr dead [path] 查找不可达代码
tldr arch [path] 检测架构层
tldr imports <file> 解析导入
tldr importers <module> [path] 查找导入某个模块的文件

语义

命令 功能
tldr warm <path> 构建所有索引(包括嵌入)
tldr semantic <query> [path] 自然语言代码搜索

诊断

命令 功能
tldr diagnostics <file> 类型检查 + 静态分析
tldr change-impact [files] 查找受更改影响的测试
tldr doctor 检查/安装诊断工具

守护进程

命令 功能
tldr daemon start 启动后台守护进程
tldr daemon stop 停止守护进程
tldr daemon status 检查状态

支持的语言

Python、TypeScript、JavaScript、Go、Rust、Java、C、C++、Ruby、PHP、C#、Kotlin、Scala、Swift、Lua、Elixir

语言会自动检测,也可以通过--lang指定。


MCP集成

适用于AI工具(Claude Desktop、Claude Code):

Claude Desktop - 添加到~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "tldr": {
      "command": "tldr-mcp",
      "args": ["--project", "/path/to/your/project"]
    }
  }
}

Claude Code - 添加到.claude/settings.json

{
  "mcpServers": {
    "tldr": {
      "command": "tldr-mcp",
      "args": ["--project", "."]
    }
  }
}

配置

.tldrignore - 排除文件

TLDR会尊重.tldrignore(gitignore语法),用于所有命令,包括treestructuresearchcalls以及语义索引:

# 自动创建并带有合理默认值
tldr warm .  # 如果不存在,则创建.tldrignore

默认排除:

  • node_modules/.venv/__pycache__/
  • dist/build/*.egg-info/
  • 二进制文件(*.so*.dll*.whl
  • 安全文件(.env*.pem*.key

自定义可通过编辑.tldrignore实现:

# 添加你的模式
large_test_fixtures/
vendor/
data/*.csv

CLI标志:

# 从命令行添加模式(可重复)
tldr --ignore "packages/old/" --ignore "*.generated.ts" tree .

# 忽略所有忽略规则
tldr --no-ignore tree .

设置 - 守护进程行为

创建.tldr/config.json以配置守护进程设置:

{
  "semantic": {
    "enabled": true,
    "auto_reindex_threshold": 20
  }
}
设置 默认值 描述
enabled true 启用语义搜索
auto_reindex_threshold 20 更改文件数达到阈值后自动重建索引

单体仓库支持

对于单体仓库,创建.claude/workspace.json以限定索引范围:

{
  "active_packages": ["packages/core", "packages/api"],
  "exclude_patterns": ["**/fixtures/**"]
}

性能

指标 原始代码 TLDR 提升
函数上下文的token数 21,000 175 99%节省
代码库概览的token数 104,000 12,000 89%节省
查询延迟(守护进程) 30秒 100毫秒 快300倍

深度解析

如需完整的架构说明、基准测试及高级工作流程:

完整文档


许可证

AGPL-3.0 - 详见LICENSE文件。

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架