实测|Kimi K3 虽强但贵?我们用 claude-context 减少了K3 27%的代码检索token
Kimi K3 最近真的很火。
2.8T 参数参数规模、1M上下文、coding 能力,几个优势叠在一起,几乎毫不犹豫,我们就把它接入了现有开发工作流里。
强是真的强,贵也是真的贵。
在X上,Arena.ai 发文说 Kimi-K3 在 Frontend Code Arena 以 1679 分排名第 1,超过 Claude Fable 5,前端代码能力堪称惊艳。
但在Reddit 上,也有人反馈 Kimi 的 $99 Allegro plan 只跑了 4 个 session 就打满周额度。
当然,kimi本身的性价比还是在的,只是如今现如今长程agent越来越多,一个任务执行下来,上下文窗口被刷爆好几回也是常态。
要想把token成本压下来,还需要在harness、提示词、工具策略方面,进一步优化。
本文将重点分享,如何在coding场景的上下文检索层面,对Kimi K3 做进一步优化。
实验所需工具: Kimi K3 与 claude-context 。
Kimi K3 实测,真实大型代码库定位又快又准
我一开始只是想看看,Kimi K3 在一个真实的大型代码库里,能不能快速找到和问题最相关的代码。
测试用的是 Django 仓库。我选了 django/db 目录里的 4 个代码定位任务,分别涉及:
year_bounds_betweeniso_year_lookupselect_for_updatedatetime_year_bounds_timezone
我没有让 Kimi K3 修改代码或运行测试(相关测试已经很多了,K3的能力毋容置疑),而是要求它根据问题,返回最相关的源文件路径。
第一轮测试只使用 Kimi K3。在这一模式下,Kimi Code 只能通过本地的 Glob、Grep 和 Read 来搜索和阅读代码。
实际效果不错。4 个任务中,Kimi Code 基本都能找到正确的核心文件,平均定位 F1 达到 0.844。从使用体验来看,Kimi K3 的代码理解没问题,核心文件基本能定位到。
但看完 session usage 后,我发现了一个不太理想的地方:token 消耗比预期高。纯Kimi K3 完成一次代码定位任务,平均需要 125,147 token,平均 tool calls 在4.2次。
token 统计来自 Kimi Code session 里的 usage 记录,口径是:total_tokens = inputOther + inputCacheRead + inputCacheCreation + output
在这个过程中,问题不在于 Kimi K3 找不到代码,而在于它需要把不少候选内容送进模型:先根据问题提取关键词,用 Grep 找可能相关的文件,再用 Read 打开候选片段,最后比较哪些文件最相关。
这套方式像人工在仓库里逐层翻文件。只要问题不能直接对应某个类名或函数名,搜索轮数和上下文就会迅速增加。
我给 Kimi Code 加了一层语义检索
既然问题不在 Kimi K3 的代码理解能力,而在搜索路径太长,我没有换模型,而是给 Kimi Code 加了一层语义检索。
在对照组里,我接入了 claude-context MCP。任务开始后,Kimi Code 会优先用 claude-context 检索代码库;如果结果还不够明确,再用本地 Grep 或 Read 做确认。
其他条件全部保持不变:
- 模型仍然是
kimi-code/k3 - 使用同一个 Django commit
- 测试范围仍然是
django/db - 任务内容完全相同
4 个任务,两组各重复 3 次,一共 24 次运行。
结果是,Kimi Code 的定位质量不但没有下降,token 和工具调用次数还明显减少了。
| 指标 | Pure Kimi K3 | Kimi K3 + claude-context | 变化 |
|---|---|---|---|
| 平均 token | 125,147 | 91,174 | -27.1% |
| 平均 tool calls | 4.2 | 1.9 | -55.0% |
| 平均定位 F1 | 0.844 | 0.946 | 提升 |
整体对比图如下:
Kimi K3 + claude-context:整体 token 与 tool calls 对比
平均看下来,接入 claude-context 后,token 从 125,147 降到 91,174,少了 27.1%;tool calls 从 4.2 次降到 1.9 次,少了 55.0%。定位质量没有下降,平均 F1 反而从 0.844 提升到 0.946。
为什么会省? 原因在于:纯 Kimi K3 更像是在仓库里一层层翻文件:先搜关键词,再读候选片段,再判断哪几个文件相关。claude-context 先把代码库做成语义索引,Kimi Code 检索时拿到的就是更靠近问题的代码片段,无关上下文少进模型,token 自然就下来了。
差距最大的任务,最能说明问题
4 个任务中,datetime_year_bounds_timezone 的变化最明显。这个任务里,Pure Kimi K3 平均 143,684 tokens、4.7 次工具调用;接入 claude-context 后,平均 59,375 tokens、1 次工具调用,token 少了 58.7%。
这个任务问的是“带时区处理的 datetime year bounds helper”,不是一个简单类名。纯 Kimi K3 会沿着 year、datetime、timezone、bounds 几个关键词来回 Grep 和 Read;claude-context 的第一次检索就命中了 django/db/backends/base/operations.py 里的相关 helper。Kimi Code 拿到的第一批上下文就已经接近答案,因此不再需要沿着多个关键词反复搜索。
所以省下来的 token 并不是来自更短的答案,而是来自更短的搜索路径。更少的无关代码进入模型,Kimi Code 就能更快完成判断。
在 Kimi Code 里怎么接入 claude-context
把 claude-context 接到 Kimi Code 里,安装很简单
Step 1:准备 Milvus / Zilliz 连接配置
claude-context 需要一个向量数据库来存代码索引。这里可以用 Zilliz Cloud,也可以用自己本地或内网的 Milvus。你只需要准备两个环境变量:
MILVUS_ADDRESS:Zilliz Cloud 的 endpoint,或者本地 Milvus 地址,比如http://localhost:19530。MILVUS_TOKEN:Zilliz Cloud 用 API key;本地 Milvus 没开鉴权时可以留空。
另外还需要一个 embedding 模型的 key。下面示例用 OpenAI embedding。
~/.context/.env
mkdir -p ~/.context
cat > ~/.context/.env <<'EOF'
EMBEDDING_PROVIDER=OpenAI
EMBEDDING_MODEL=text-embedding-3-small
OPENAI_API_KEY=sk-xxx
# Zilliz Cloud: https://xxx.aws-us-west-2.vectordb.zillizcloud.com:19544
# Local Milvus: http://localhost:19530
MILVUS_ADDRESS=http://localhost:19530
# Zilliz Cloud 填 API key;本地 Milvus 没开鉴权可以留空
MILVUS_TOKEN=
EOF
Step 2:在项目里配置 Kimi Code 的 MCP
进入你要分析的代码仓库,在项目根目录创建 .kimi-code/mcp.json:
创建 Kimi Code MCP 配置
mkdir -p .kimi-code
vim .kimi-code/mcp.json
写入下面这段配置:
.kimi-code/mcp.json
{
"mcpServers": {
"claude-context": {
"command": "bash",
"args": [
"-lc",
"set -a; source ~/.context/.env; set +a; export CUSTOM_EXTENSIONS=.py,.js,.ts,.tsx,.go,.java; export CUSTOM_IGNORE_PATTERNS='node_modules/**,.git/**,dist/**,build/**,*.png,*.jpg,*.jpeg,*.gif,*.svg'; npx -y @zilliz/claude-context-mcp@latest"
],
"startupTimeoutMs": 60000,
"toolTimeoutMs": 600000
}
}
}
这里的 npx -y @zilliz/claude-context-mcp@latest 就是安装并启动 claude-context MCP。第一次运行时会稍微慢一点,因为 npx 会先下载 package;后面再启动 Kimi Code 就会复用本地缓存。
这里有两个地方可以按自己的项目改:
CUSTOM_EXTENSIONS:只索引你关心的源码后缀,比如 Python 项目可以只留.py。CUSTOM_IGNORE_PATTERNS:排除node_modules、.git、构建产物和图片,避免无关文件进索引。
Step 3:启动 Kimi Code,并先建索引
回到项目根目录启动 Kimi Code。第一次用的时候,可以直接对 Kimi 说:
在项目根目录启动 Kimi Code
cd /path/to/your/repo
kimi
text
给 Kimi Code 的索引指令
Index this codebase with claude-context.
索引完成后,再让 Kimi Code 做代码定位、调用链分析或 bug 修复。比如:
text
使用 claude-context 做代码定位
Use claude-context to locate the files related to bulk_create returning fields. Return the most relevant source file paths.
能看到 Kimi Code 调用 mcp__claude-context__search_code,基本就说明 MCP 已经接通了。
最后
Kimi K3 的长上下文和 coding 能力都很强,但强模型也需要一个好检索层。
不过,如果你只是问一个小函数,Pure Kimi Code 就够了;如果你经常让 agent 在大仓库里找代码、追调用链、修 bug,claude-context 不妨一试。
继续阅读

实战|从 Loop 到 Graph Engineering ,怎样让 Agent 系统长期、可靠地运行
解析 Loop 与 Graph Engineering 的协同机制,涵盖任务驱动、角色分权、异步反馈和上下文检索,构建长期可靠运行的 Agent 系统。

2026 下半年, 从Qwen3 到 ColPali,Embedding 怎么选?
对比 Qwen3、Jina、Gemini 与 ColPali,解析文本、多模态、长文档和复杂 PDF 的 Embedding 选型策略。

多模态 Agent 记忆,为什么不能当成升级版多模态RAG?
了解多模态 Agent 记忆如何通过按需取图、文本代理和模态级联,降低 token 成本并提升准确率。



