返回市场
自动开发代码库

自动开发代码库

作者:anrgct88 星标更新:2025-07-05

项目介绍

@autodev/codebase

<div align="center"> <img src="src/images/image2.png" alt="图片2" style="display: inline-block; width: 350px; margin: 0 10px;" /> <img src="src/images/image3.png" alt="图片3" style="display: inline-block; width: 200px; margin: 0 10px;" /> </div> <br />

一个与平台无关的代码分析库,具有语义搜索功能,并支持MCP(模型上下文协议)服务器。此库提供智能代码索引、基于向量的语义搜索,并可以集成到各种开发工具和IDE中。

🚀 功能

  • 语义代码搜索:使用嵌入式向量进行代码搜索
  • MCP服务器支持:用于IDE集成的基于HTTP的MCP服务器
  • 终端UI:具有丰富终端界面的交互式CLI
  • Tree-sitter解析:高级代码解析和分析
  • 向量存储:集成Qdrant向量数据库
  • 灵活嵌入:通过Ollama支持多种嵌入模型

📦 安装

1. 安装并启动Ollama

# 安装Ollama(macOS)
brew install ollama

# 启动Ollama服务
ollama serve

# 在新的终端中,拉取嵌入模型
ollama pull dengcao/Qwen3-Embedding-0.6B:Q8_0

2. 安装ripgrep

ripgrep 是快速代码库索引所必需的。安装方法如下:

# 安装ripgrep(macOS)
brew install ripgrep

# 或在Ubuntu/Debian上
sudo apt-get install ripgrep

# 或在Arch Linux上
sudo pacman -S ripgrep

3. 安装并启动Qdrant

使用Docker启动Qdrant:

# 启动Qdrant容器
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

或直接下载并运行Qdrant:

# 下载并运行Qdrant
wget https://github.com/qdrant/qdrant/releases/latest/download/qdrant-x86_64-unknown-linux-gnu.tar.gz
tar -xzf qdrant-x86_64-unknown-linux-gnu.tar.gz
./qdrant

4. 验证服务是否正在运行

# 检查Ollama
curl http://localhost:11434/api/tags

# 检查Qdrant
curl http://localhost:6333/collections

5. 安装Autodev-codebase

npm install -g @autodev/codebase

或者你可以本地安装:

git clone https://github.com/anrgct/autodev-codebase
cd autodev-codebase
npm install
npm run build
npm link

🛠️ 使用

命令行接口

CLI提供了两种主要模式:

1. 交互式TUI模式(默认)

# 基本用法:将当前文件夹作为代码库进行索引。
# 如果文件数量较多,请谨慎运行此命令。
codebase

# 自定义选项
codebase --demo # 创建本地演示目录并测试索引服务,推荐用于设置
codebase --path=/my/project
codebase --path=/my/project --log-level=info

2. MCP服务器模式(推荐用于IDE集成)

# 启动长期运行的MCP服务器
cd /my/project
codebase mcp-server

# 自定义配置
codebase mcp-server --port=3001 --host=localhost
codebase mcp-server --path=/workspace --port=3002

⚙️ 配置

配置文件及优先级

该库使用分层配置系统,允许你在不同级别自定义设置。优先级顺序(从高到低)是:

  1. CLI参数(例如,--model--ollama-url--qdrant-url--config等)
  2. 项目配置文件./autodev-config.json
  3. 全局配置文件~/.autodev-cache/autodev-config.json
  4. 内置默认值

在较高层级指定的设置会覆盖较低层级的设置。这让你可以根据环境或项目需求定制行为。

配置文件位置:

  • 全局:~/.autodev-cache/autodev-config.json
  • 项目:./autodev-config.json
  • CLI:运行命令时直接传递参数

全局配置

~/.autodev-cache/autodev-config.json 创建一个全局配置文件:

{
  "isEnabled": true,
  "embedder": {
    "provider": "ollama",
    "model": "dengcao/Qwen3-Embedding-0.6B:Q8_0",
    "dimension": 1024,
    "baseUrl": "http://localhost:11434"
  },
  "qdrantUrl": "http://localhost:6333",
  "qdrantApiKey": "your-api-key-if-needed",
  "searchMinScore": 0.4
}

项目配置

./autodev-config.json 创建一个项目特定的配置文件:

{
  "embedder": {
    "provider": "openai-compatible",
    "apiKey": "sk-xxxxx",
    "baseUrl": "http://localhost:2302/v1",
    "model": "openai/text-embedding-3-smallnpm",
    "dimension": 1536,
  },
  "qdrantUrl": "http://localhost:6334"
}

配置选项

选项类型描述默认值
isEnabledboolean开启/关闭代码索引功能true
embedder.providerstring嵌入提供者(ollamaopenaiopenai-compatibleollama
embedder.modelstring嵌入模型名称dengcao/Qwen3-Embedding-0.6B:Q8_0
embedder.dimensionnumber向量维度大小1024
embedder.baseUrlstring提供者API基础URLhttp://localhost:11434
embedder.apiKeystringAPI密钥(适用于OpenAI/兼容提供者)-
qdrantUrlstringQdrant向量数据库URLhttp://localhost:6333
qdrantApiKeystringQdrant API密钥(如果启用身份验证)-
searchMinScorenumber搜索结果的最小相似度分数0.4

注意isConfigured 字段根据配置的完整性自动计算,不应手动设置。系统将根据所选提供者的必要字段确定配置是否有效。

配置优先级示例

# 使用全局配置默认值
codebase

# 通过CLI覆盖模型(最高优先级)
codebase --model="custom-model"

# 使用项目配置并覆盖CLI
codebase --config=./my-config.json --qdrant-url=http://remote:6333

🔧 CLI选项

全局选项

  • --path=<path> - 工作区路径(默认:当前目录)
  • --demo - 在工作区创建演示文件
  • --force - 忽略缓存强制重新索引
  • --ollama-url=<url> - Ollama API URL(默认:http://localhost:11434)
  • --qdrant-url=<url> - Qdrant向量DB URL(默认:http://localhost:6333)
  • --model=<model> - 嵌入模型(默认:nomic-embed-text)
  • --config=<path> - 配置文件路径
  • --storage=<path> - 存储目录路径
  • --cache=<path> - 缓存目录路径
  • --log-level=<level> - 日志级别:error|warn|info|debug(默认:error)
  • --help, -h - 显示帮助

MCP服务器选项

  • --port=<port> - HTTP服务器端口(默认:3001)
  • --host=<host> - HTTP服务器主机(默认:localhost)

IDE集成(Cursor/Claude)

配置你的IDE以连接到MCP服务器:

{
  "mcpServers": {
    "codebase": {
      "url": "http://localhost:3001/sse"
    }
  }
}

对于不支持SSE MCP的客户端,可以使用以下配置:

{
  "mcpServers": {
    "codebase": {
      "command": "codebase",
      "args": [
        "stdio-adapter",
        "--server-url=http://localhost:3001/sse"
      ]
    }
  }
}

🌐 MCP服务器特性

Web界面

  • 首页http://localhost:3001 - 服务器状态和配置
  • 健康检查http://localhost:3001/health - JSON状态端点
  • MCP端点http://localhost:3001/sse - SSE/HTTP MCP协议端点

可用的MCP工具

  • search_codebase - 通过你的代码库进行语义搜索
    • 参数:query(字符串),limit(数字),filters(对象)
    • 返回:带有文件路径、分数和代码块的格式化搜索结果

脚本

# 开发模式带演示文件
npm run dev

# 构建生产版本
npm run build

# 类型检查
npm run type-check

# 运行TUI演示
npm run demo-tui

# 启动MCP服务器演示
npm run mcp-server

嵌入模型PK

主流嵌入模型性能

模型维度平均精度@3平均精度@5好查询(≥66.7%)失败查询(0%)
siliconflow/Qwen/Qwen3-Embedding-8B409676.7%66.0%5/100/10
siliconflow/Qwen/Qwen3-Embedding-4B256073.3%54.0%5/101/10
voyage/voyage-code-3102473.3%52.0%6/101/10
siliconflow/Qwen/Qwen3-Embedding-0.6B102463.3%42.0%4/101/10
morph-embedding-v2153656.7%44.0%3/101/10
openai/text-embedding-ada-002153653.3%38.0%2/101/10
voyage/voyage-3-large102453.3%42.0%3/102/10
openai/text-embedding-3-large307246.7%38.0%1/103/10
voyage/voyage-3.5102443.3%38.0%1/102/10
voyage/voyage-3.5-lite102436.7%28.0%1/102/10
openai/text-embedding-3-small153633.3%28.0%1/104/10
siliconflow/BAAI/bge-large-en-v1.5102430.0%28.0%0/103/10
siliconflow/Pro/BAAI/bge-m3102426.7%24.0%0/102/10
ollama/nomic-embed-text76816.7%18.0%0/106/10
siliconflow/netease-youdao/bce-embedding-base_v1102413.3%16.0%0/106/10

基于Ollama的嵌入模型性能

模型维度精度@3精度@5好查询(≥66.7%)失败查询(0%)
ollama/dengcao/Qwen3-Embedding-4B:Q4_K_M256066.7%48.0%4/101/10
ollama/dengcao/Qwen3-Embedding-0.6B:f16102463.3%44.0%3/100/10
ollama/dengcao/Qwen3-Embedding-0.6B:Q8_0102463.3%44.0%3/100/10
ollama/dengcao/Qwen3-Embedding-4B:Q8_0256060.0%48.0%3/101/10
lmstudio/taylor-jones/bge-code-v1-Q8_0-GGUF153660.0%54.0%4/101/10
ollama/dengcao/Qwen3-Embedding-8B:Q4_K_M409656.7%42.0%2/102/10
ollama/hf.co/nomic-ai/nomic-embed-code-GGUF:Q4_K_M358453.3%44.0%2/100/10
ollama/bge-m3:f16102426.7%24.0%0/102/10
ollama/hf.co/nomic-ai/nomic-embed-text-v2-moe-GGUF:f1676826.7%20.0%0/102/10
ollama/granite-embedding:278m-fp1676823.3%18.0%0/104/10
ollama/unclemusclez/jina-embeddings-v2-base-code:f1676823.3%16.0%0/105/10
lmstudio/awhiteside/CodeRankEmbed-Q8_0-GGUF76823.3%16.0%0/105/10
lmstudio/wsxiaoys/jina-embeddings-v2-base-code-Q8_0-GGUF76823.3%16.0%0/105/10
ollama/dengcao/Dmeta-embedding-zh:F1676820.0%20.0%0/106/10
ollama/znbang/bge:small-en-v1.5-q8_0384