CocoIndex Code
为代码代理提供本地 AST 语义搜索与结构化检索。
这个 Agent 能做什么,适合哪些场景?
CocoIndex Code 是一个面向代码库的嵌入式语义搜索 CLI,底层使用 CocoIndex 的 Rust 索引引擎。它通过 ccc 命令初始化项目、构建或增量更新索引,并返回带路径、语言、代码内容、行号和相似度的匹配代码块。除了 CLI,它可作为 ccc mcp stdio 服务器向 Codex、Claude Code、OpenCode 和 Kilo Code 提供 search 工具,也提供可安装给兼容代理的 ccc skill。索引和项目设置默认保存在项目的 .cocoindex_code 目录,后台 daemon 会在首次使用时启动并保持嵌入模型热加载。部署可使用原生 Python 工具链,或使用持久 Docker 容器运行。
执行 ccc init 创建全局与项目 YAML 设置,并将 .cocoindex_code/ 写入 .gitignore;ccc index 会建立或更新索引,且文档说明它只重新索引变更文件。ccc search <query> 使用语义相似度检索,可按 --lang、--path、--offset、--limit 过滤,并可用 --refresh 先更新索引。ccc grep <pattern> 使用 CocoIndex 的 code_match 按语法结构匹配源码,无需索引、daemon 或嵌入模型。运行 ccc mcp 时,它公开 search(query, limit, offset, refresh_index, languages, paths) 工具,返回代码块及其元数据。嵌入可来自本地 SentenceTransformers,或通过 LiteLLM 使用云端提供商。
- 刚接手陌生 Python、TypeScript 或 Rust 仓库的开发者,需要用“用户会话如何管理”这类描述定位实现。
- 使用 Codex 或 Claude Code 的工程师,希望代理通过 MCP 的 search 工具检索相关代码块。
- 不确定函数或类名、普通文本 grep 难以命中的维护者,需要按自然语言概念搜索实现。
- 需要查找函数定义、调用或类结构的开发者,可用 ccc grep 编写 AST 模式而非依赖格式一致的文本。
- 希望在团队或受限主机上使用固定运行环境的工程师,可用持久 Docker 容器保持 daemon 和模型缓存。
这个 Agent 有哪些优点和局限?
- 同时提供语义检索和无需索引的 ccc grep AST 结构化检索,适合不同的代码定位任务。
- ccc mcp 以 stdio 暴露明确的 search 工具,可直接接入已文档化的 Codex 和 Claude Code 工作流。
- 支持本地 SentenceTransformers,也可借助 LiteLLM 使用多种云端嵌入服务;本地默认模型不需要 API 密钥。
- 索引嵌入项目目录,并通过后台 daemon 保持模型热加载;Docker 部署可让容器内 daemon 跨会话保持运行。
- 本地完整安装会引入约 1 GB 的 torch 与 transformers 依赖;完整 Docker 镜像约 5 GB。
- slim 安装依赖云端嵌入提供商和 API 密钥,使用时会增加网络与供应商配置要求。
- 更换嵌入模型后需要执行 ccc reset && ccc index,因为向量维度可能不同。
- ccc grep 依赖 CocoIndex 的 code_match;文档说明在该功能发布前需要使用本地 CocoIndex 构建。
如何安装或部署这个 Agent?
本地安装(包含无需 API 密钥的本地嵌入):
pipx install 'cocoindex-code[full]'
或:
uv tool install --upgrade 'cocoindex-code[full]'
进入目标代码库后首次可运行:
ccc init
ccc index
ccc search "authentication logic"
[full] 默认使用本地 Snowflake/snowflake-arctic-embed-xs。若安装 slim 版 cocoindex-code,则需配置云端嵌入提供商及其 API 密钥。
如何使用这个 Agent?
直接检索:ccc search "database schema";按语言过滤:ccc search --lang python --lang markdown schema;先刷新再查:ccc search --refresh "query handler"。结构化检索示例:ccc grep 'def \NAME(\(ARGS*\)):'。给 Codex 注册 MCP:codex mcp add cocoindex-code -- ccc mcp;随后 MCP 的 search 工具可接受 query、limit、offset、refresh_index、languages 和 paths。安装 ccc skill 可运行:npx skills add cocoindex-io/cocoindex-code。