AI Agent 上下文塞不下?Ctx 用 10 万节点知识图谱只推荐你需要的工具
问题:你的 AI Agent 是不是越用越「笨」了?
如果你用 Claude Code、Codex 或其他 AI 编码 Agent 做过几个真实项目,大概率遇到过这个场景:一开始 Agent 表现挺好,但随着你装了十几个 Skills、接了几个 MCP 服务器、配了两三个 Agent 配置……它开始「飘」了。Token 消耗飙升,响应越来越慢,有时候甚至答非所问。
原因很简单:上下文塞得太满了。 Claude Code 的 Skills、Agent 配置、MCP 工具、Harness 一共成千上万个可选项,你的 Agent 每次对话都得从这堆东西里「翻找」有用的。就像让一个程序员同时开着 50 个 IDE 插件,不卡才怪。
但更棘手的问题是:你根本不知道哪些 Skills 是当前项目需要的。今天写 API 服务,明天改 Docker 配置,后天跑数据分析——每个任务需要的工具集完全不一样。
这就是 Ctx 要解决的核心问题。
为什么这真的是个问题?
不只是「多花点 Token 钱」这么简单。有三个层面的影响:
Token 浪费:每个加载进上下文的无关 Skill 都会吃掉 Token 预算。不是每个 Skill 都只有两行说明——有些带完整代码示例的 Skill 单页就几千 Token。如果你同时装了 20 个,哪怕其中只有 4 个是当前需要的,其余 16 个的 Token 全白花了。
质量下降:Anthropic 和 OpenAI 的文档都明确说过,过长的上下文会让模型注意力分散。一个塞满无关 Skills 的上下文,Agent 找对工具的难度和你在乱码中找正确代码差不多。
Skill 腐烂:几个月前装的一个 Web 抓取 Skill,现在做后端 API 开发完全用不上,但它还在上下文中占位置。更糟的是,你忘了自己装过它,下次需要类似功能时又装一个新的——循环加剧。
这不是「少装点」能解决的。问题是:你不知道该装什么。
手动方案:猜和试
在没有工具的情况下,你只能靠猜。装一批 Skill,跑一下看看 Token 消耗,不行再卸载。这在 5 个 Skill 时还算可行,但到了 50 个、500 个的时候,完全靠不住。
而且人的认知有盲区:你可能根本不知道存在某些正好适合当前项目的 Skill。Skill 生态已经有 6 万多个条目,MCP 服务器超过 1 万——没人能记住全部。
Ctx 的方案:一个会「观察」你的知识图谱
Ctx 的思路完全不同。它不做「把所有东西都加载进去再过滤」这种事,而是反过来——先看你当前在做什么项目,再从知识图谱里找出最相关的工具。
核心逻辑
Ctx 基于一个 79,958 节点、180 万条边的知识图谱。这个图谱包含了:
- 68,494 个 Skill 页面(其中 67,024 个可直接安装)
- 467 个 Agent 配置
- 10,790 个 MCP 服务器
- 207 个 Harness(模型运行时框架)
图谱的边来自语义相似度、标签重叠、Source 关联、使用模式等维度。当你运行 ctx-scan-repo 时,Ctx 会分析你当前项目的代码库,在图谱上行走,找出最匹配的 10-15 个工具,而不是一股脑全塞进去。
快速上手
安装非常简单:
pip install claude-ctx ctx-init --graph --model-mode skip
–graph 参数下载预构建的运行时知识图谱(约几十 MB),–model-mode skip 跳过模型配置(如果你只用 Claude Code)。
如果你用的是自定义模型(如 GPT-5、DeepSeek 或其他 API/本地模型),可以这样配置:
ctx-init --model-mode custom --model openai/gpt-5.5 --goal "build a CAD agent"
Ctx 会基于你的模型和任务目标推荐合适的 Harness。
日常使用
安装完成后,Ctx 会在后台观察 Claude Code 的 PostToolUse 和 Stop 事件。你不需要手动做任何事——它已经知道你正在做什么了。
当你需要明确推荐时:
ctx-scan-repo --repo . --recommend
这会输出当前仓库的扫描结果,包含推荐加载的 Skill、Agent、MCP 服务器列表。输出格式清晰,每个推荐项包含名称、来源、推荐理由。
如果你想知道已安装工具的质量:
ctx-skill-quality list ctx-skill-quality explain python-patterns
前者给出所有 Skill 的四维质量评分,后者深入到某个 Skill 的具体分析。
高级用法:Agent 和 Harness 管理
Ctx 不只是 Skill 推荐器。它还是一个完整的实体管理器:
ctx-agent-add --agent-path ./code-reviewer.md --name code-reviewer ctx-harness-add --repo https://github.com/earthtojake/text-to-cad --tag cad ctx-harness-install text-to-cad --dry-run ctx-harness-install text-to-cad ctx-harness-install text-to-cad --update --dry-run ctx-harness-install text-to-cad --uninstall --dry-run
每个 add 操作如果发现实体已存在,会打印收益/风险对比,并等待你确认是否替换——不会静默覆盖。
本地监控仪表盘
Ctx 还带一个本地 Web 仪表盘,可以查看当前加载的工具状态:
ctx-monitor serve
访问 http://127.0.0.1:8765/,可以看到已加载的 Skills、Agent、MCP 服务器列表、图谱视图、Skill 网格过滤器、会话时间线、审计和运行时日志、SSE 实时事件流。
预防策略:不止于一次性的「瘦身」
Ctx 的价值不只是「首次安装时整理一次」。它的设计鼓励持续维护:
定期扫描:每当你切换项目或开始新任务,跑一次 ctx-scan-repo –recommend。Ctx 会检测当前项目与上次的不同,调整推荐。
质量监控:用 ctx-skill-quality 和 ctx-skill-health dashboard 定期检查已安装工具的健康状态。那些几个月没用过的、依赖过时的工具会被标记。
实体更新审批:当 Ctx 发现已有实体有更新版本时,它会打印变更的收益和风险列表,由你决定是否应用——不会自作主张。
CI 集成:Ctx 提供了 ci_preflight.py 脚本,可以在提交前运行本地检查:python scripts/ci_preflight.py –profile pr。这会跑一遍 stats、Ruff、mypy、单元测试、图验证等检查,确保你的工具配置在被推到 CI 之前就是健康的。
横向对比:Ctx vs 传统方案
| 维度 | 传统方案(手动安装) | Ctx |
|---|---|---|
| 发现机制 | 靠浏览 GitHub/MCP 目录 | 10 万节点知识图谱自动推荐 |
| 加载策略 | 全部加载或靠记忆 | 按项目上下文选择 10-15 个 |
| Token 开销 | 随工具数量线性增长 | 维持在最优区间 |
| 更新管理 | 手动检查 | 自动检测 + 收益/风险评估 |
| 跨项目切换 | 手动卸载/安装 | 自动适配 |
| 工具质量评估 | 无 | 四维质量评分 |
| 本地仪表盘 | 无 | 有(ctx-monitor serve) |
总结
Ctx 解决的不是「哪个 AI 工具更好用」的问题,而是一个更根本的痛点:AI Agent 的工具管理本身就是一个待解决的问题。当 Skill 生态已经发展到 6 万多个条目时,人脑已经不可能记住所有选项,全量加载又贵又低效。
Ctx 把 Andrej Karpathy 的 LLM-wiki 模式应用到了工具管理上——用知识图谱作为 Agent 的长期记忆,让每个会话只加载最适合当前任务的那一小部分工具。
这对两类人特别有用:
- 重度 Claude Code 用户:装了 20+ Skills、多 MCP 服务器,Token 消耗越来越不可控
- 多项目切换的开发者:每个项目的工具栈不同,不想手动管理安装/卸载
开源、MIT 许可,可以放心用。
链接:GitHub stevesolun/ctx | PyPI claude-ctx