在与 Claude、GPT、Gemini 等 LLM 协作编程时,你是否遇到过这样的困境:
- 复制粘贴代码片段太零散,AI 无法理解整体架构?
- 手动整理文件列表太繁琐,经常遗漏关键依赖?
- Token 限制让你不得不反复取舍,难以提供完整上下文?
- 生成的回复经常”跑偏”,因为 AI 缺乏项目全局视角?
如果你有这些烦恼,LLM Context Copy 就是为你准备的解决方案。
🎯 什么是 LLM Context Copy?
LLM Context Copy 是一款专为 LLM(大语言模型)优化的 VS Code 扩展。它的核心使命很简单:帮助你高效地将项目上下文复制给 AI,让 AI 真正理解你的代码库。
与传统的”复制文件内容”不同,LLM Context Copy 提供了一套完整的上下文管理解决方案:
- 智能文件选择:基于依赖关系的文件推荐
- Token 预算管理:精确计算和控制 Token 消耗
- 多种优化策略:在保留语义的前提下压缩内容
- 多格式输出:支持 Markdown、JSON、Plain Text、TOON 四种格式
✨ 核心功能深度解析
1. 原生 TreeView 文件选择器
这是 LLM Context Copy 最直观的特色功能。它不是简单的文件列表,而是一个完整的交互式文件树:
📁 src/
☑ 📁 components/
☑ 📄 Button.tsx
☑ 📄 Card.tsx
☐ 📄 Modal.tsx
☑ 📁 utils/
☑ 📄 helpers.ts
☑ 📄 api.ts
☐ 📁 tests/
为什么这很重要?
传统的文件选择方式(如命令行 glob 模式)有两个问题:
- 不直观,需要记忆复杂的语法
- 容易遗漏或误选文件
TreeView 提供了:
- 可视化目录结构:一眼看清项目布局
- 复选框多选:精确控制哪些文件被包含
- 文件夹级联选择:选中文件夹自动选中所有子文件
- 实时统计:显示已选文件数、总大小、预估 Token 数
2. 智能推荐系统
这是 LLM Context Copy 的”杀手级”功能。它能自动分析你的代码依赖关系,推荐相关文件:
工作原理:
- 依赖图构建:扫描 import/require 语句,构建文件依赖图
- 活跃文件追踪:检测当前编辑的文件
- 最近文件记录:追踪最近打开的文件
- 相关性评分:综合计算每个文件的相关性得分
评分权重配置:
| 因素 | 默认权重 | 说明 |
|---|---|---|
| 活跃编辑器文件 | 30 | 当前正在编辑的文件权重最高 |
| 最近打开文件 | 20 | 最近访问过的文件 |
| 依赖关系 | 25 | 被依赖或依赖当前文件的文件 |
| 文件类型优先级 | 15 | TypeScript/JavaScript 文件优先 |
3. Token 预算管理
Token 限制是与 LLM 协作的核心约束。LLM Context Copy 提供了完整的 Token 管理方案:
精确 Token 计数:
使用真实的 Tokenizer(如 tiktoken)进行精确计算,而不是简单的字符估算。这意味着:
- 对于 GPT-4:使用 cl100k_base 编码
- 对于 Claude:使用对应的编码方案
- 预估误差控制在 5% 以内
预算分配策略:
总 Token 预算: 128,000
├── 系统提示词: ~2,000
├── 用户问题预留: ~10,000
├── 输出预留: ~20,000
└── 可用于上下文: ~96,000
当选择超过预算时,扩展会:
- 按相关性排序文件
- 优先保留高相关性文件
- 对剩余文件应用压缩策略
4. 多种优化策略
LLM Context Copy 提供了六种优化策略,可以在保留语义的前提下大幅减少 Token 消耗:
| 策略 | 效果 | 适用场景 |
|---|---|---|
| 移除空行 | 减少 5-10% | 代码中有大量空行 |
| 移除注释 | 减少 15-30% | 不需要 AI 理解注释意图 |
| 压缩空白 | 减少 10-15% | 代码缩进较深 |
| 截断长文件 | 视情况 | 大型数据文件或配置 |
| 去重代码 | 减少 20-40% | 有重复模式的代码 |
| 优先重要文件 | 优化排序 | Token 预算紧张时 |
实际效果对比:
原始文件: 15,000 tokens
├── 移除空行后: 13,500 tokens (-10%)
├── 移除注释后: 9,450 tokens (-30%)
├── 压缩空白后: 8,000 tokens (-15%)
└── 最终输出: 8,000 tokens (-47%)
5. 多格式输出
支持四种输出格式,满足不同使用场景:
Markdown 格式(推荐):
# Project Context
## Directory Structure
📁 src/
📄 Button.tsx
## File: src/Button.tsx
```typescript
export const Button = () => { ... }
**JSON 格式**:
```json
{
"files": [
{
"path": "src/Button.tsx",
"content": "export const Button..."
}
]
}
Plain Text:适合快速参考
TOON 格式:Token-Optimized Object Notation,专为最大压缩设计
🛠️ 技术架构分析
作为开源项目,LLM Context Copy 的架构设计值得学习:
核心模块
src/
├── commands/ # VS Code 命令注册
├── compression/ # 压缩引擎
├── di/ # 依赖注入容器
├── formatters/ # 输出格式化器
├── intelligence/ # 智能推荐系统
├── performance/ # 性能优化
├── services/ # 核心服务
└── tree/ # TreeView 提供者
依赖注入设计
项目使用了依赖注入模式,这使得:
- 模块间解耦,易于测试
- 服务生命周期管理清晰
- 便于扩展新功能
// 服务注册示例
container.registerSingleton(ITokenCounter, TokenCounter);
container.registerSingleton(IFileWatcher, FileWatcher);
container.registerSingleton(IContextManager, ContextManager);
性能优化策略
- Web Worker:Token 计算在后台线程进行,不阻塞 UI
- 虚拟化 TreeView:大目录按需加载,内存友好
- 增量更新:文件变化时只更新变化部分
- 缓存机制:依赖分析结果缓存,避免重复计算
💡 使用场景
场景一:新功能开发
你正在开发一个新功能,需要 AI 帮你写代码:
- 打开 LLM Context Copy
- 选择相关的组件、工具函数、类型定义
- 点击”智能推荐”自动添加依赖文件
- 复制上下文,粘贴给 Claude/GPT
- 描述你的需求,获得精准的代码建议
场景二:Bug 调试
遇到一个棘手的 bug,需要 AI 帮你分析:
- 选择出问题的文件
- 使用”移除注释”策略减少噪音
- 包含相关的测试文件
- 让 AI 分析可能的问题根源
场景三:代码审查
让 AI 帮你审查代码质量:
- 选择需要审查的模块
- 包含相关的配置文件
- 使用 Markdown 格式输出
- 让 AI 提供改进建议
场景四:文档生成
为代码生成文档:
- 选择需要文档化的文件
- 保留注释(不使用移除注释策略)
- 让 AI 生成 API 文档或 README
📊 与其他工具对比
| 特性 | LLM Context Copy | 手动复制 | 其他扩展 |
|---|---|---|---|
| 文件选择 | TreeView + 复选框 | 手动打开每个文件 | 简单列表 |
| Token 计算 | 精确计算 | 无 | 粗略估算 |
| 智能推荐 | ✅ | ❌ | ❌ |
| 优化策略 | 6 种 | 无 | 1-2 种 |
| 输出格式 | 4 种 | 1 种 | 1-2 种 |
| 开源 | ✅ | N/A | 部分开源 |
🚀 快速开始
- 在 VS Code 扩展市场搜索 “LLM Context Copy”
- 点击安装
- 使用
Ctrl/Cmd + Shift + P打开命令面板 - 输入 “Open Context Copy”
- 选择文件,点击复制
或者直接访问:
- VS Code Marketplace: bitfarer.llm-context-copy
- GitHub: bitfarer/llm-context-copy
🔮 未来展望
LLM Context Copy 还在持续进化中,计划中的功能包括:
- AI 对话集成:直接在 VS Code 中与 AI 对话
- 多模型支持:针对不同 LLM 优化输出格式
- 团队协作:共享上下文模板
- 语义压缩:基于 AST 的智能压缩
📝 总结
LLM Context Copy 解决了一个真实存在的痛点:如何高效地将项目上下文传递给 LLM。
它不是简单的”复制文件内容”工具,而是一套完整的上下文管理解决方案。通过智能文件选择、Token 预算管理和多种优化策略,它让 AI 助手能够真正理解你的代码库,从而提供更精准、更有价值的帮助。
如果你经常与 Claude、GPT、Gemini 等 LLM 协作编程,LLM Context Copy 绝对值得一试。
开源地址:github.com/bitfarer/llm-context-copy
插件市场:marketplace.visualstudio.com/items?itemName=bitfarer.llm-context-copy