🥬 菜包AI (Caibao AI)
VS Code AI 编程助手扩展 — 多模型 + 智能记忆 + Agent 自动化

English | 中文
功能特性
🤖 多模型 AI 对话
- 支持 11+ 模型:豆包、DeepSeek、通义千问、Kimi、智谱GLM、百川、OpenAI、Claude、硅基流动等
- 兼容 OpenAI API 格式,可接入任何兼容服务
- 免费模型自动发现(硅基流动)
- 流式输出,实时响应
🧠 智能记忆系统
- 金字塔记忆:用户画像 → 反馈偏好 → 项目上下文 → 外部引用
- 知识图谱:自动提取实体关系,构建项目知识网络
- BM25 语义搜索:精确匹配记忆卡片
- 8 策略自动提取:从对话中自动学习用户偏好和项目知识
- 外部 IDE 兼容:扫描 Kiro / Claude / Cursor / Copilot 记忆文件
- 项目思维导图:Mermaid 可视化项目知识结构
🛠 Agent 自动模式
- 18 个内置工具:文件读写、搜索、命令执行、代码诊断、Web 搜索等
- apply_diff:统一 diff 补丁,多处精确编辑
- 自动纠错:写入后自动诊断 → 检测错误 → 自动修复
- 重复检测:防止 AI 工具调用死循环
- 失败追踪:连续失败自动降级提示
- 文件 checkpoint:每次修改前自动备份,支持 AI 回滚
📋 Spec Plan(任务规划)
- AI 自动拆解复杂任务为可执行步骤
- 逐步执行,支持跳过、重试
- 进度可视化追踪
✏️ 内联编辑
Ctrl+K 选中代码直接编辑
- Diff 预览,Accept / Reject 逐块审查
🌐 MCP 协议支持
- 兼容 Model Context Protocol
- 可接入外部 MCP 工具服务器
🔒 安全
- API Key 本地存储,不上传
- 命令执行沙箱化,敏感操作需确认
- URL 白名单防护
📊 其他
- 对话历史 AI 智能压缩
- Tab 补全(实验性)
- 多会话管理
- 结构化日志(JSONL)
- 项目自动 Steering(零 token 推断项目类型)
快速开始
方式一:VS Code 扩展(推荐)
# 克隆项目
git clone https://github.com/zmdchenqi/caibao-ai.git
cd caibao-ai
# 安装依赖
npm install
# 构建
npm run build:all
# 打包 .vsix
npm run package
然后在 VS Code 中:Extensions → Install from VSIX → 选择 caibao-ai-1.0.0.vsix
方式二:开发调试
npm install
npm run watch
# 在 VS Code 中按 F5 启动调试
方式三:独立 IDE(Windows)
.\build-ide\build.ps1
配置
安装后在 VS Code 设置中搜索 caibao-ai:
- 添加 AI 模型:命令面板 →
菜包AI: 切换AI模型
- 填入 API Key:从各厂商控制台获取
- 开始对话:点击侧边栏菜包AI图标
支持的模型
项目结构
caibao-ai/
├── src/
│ ├── extension.ts # 扩展入口
│ ├── agent/ # Agent 系统 (27 个模块)
│ │ ├── autoMode.ts # 自动模式主循环
│ │ ├── executor.ts # 工具执行器
│ │ ├── tools.ts # 18 个工具实现
│ │ ├── toolRegistry.ts # 工具定义注册
│ │ ├── parser.ts # 工具调用解析
│ │ ├── planner.ts # 任务规划器
│ │ ├── critic.ts # 自动纠错
│ │ ├── applyDiff.ts # Unified diff 补丁
│ │ ├── checkpoint.ts # 文件备份/回滚
│ │ ├── encoding.ts # 编码检测 (UTF-8/GBK/UTF-16)
│ │ ├── sandbox.ts # 命令沙箱
│ │ └── ...
│ ├── chat/ # 聊天 UI (15 个模块)
│ │ ├── chatPanel.ts # 主聊天面板
│ │ ├── promptBuilder.ts # System prompt 构建
│ │ ├── webviewHtml.ts # Webview 界面
│ │ ├── specPlanManager.ts # Spec Plan 管理
│ │ └── ...
│ ├── memory/ # 记忆系统 (22 个模块)
│ │ ├── pyramidMemory.ts # 金字塔记忆
│ │ ├── knowledgeGraph.ts # 知识图谱
│ │ ├── semanticSearch.ts # BM25 搜索
│ │ ├── extractionRules.ts # 8 策略自动提取
│ │ ├── mindmap.ts # 思维导图
│ │ ├── steering.ts # 项目自动推断
│ │ └── ...
│ ├── providers/ # AI 服务商 (7 个模块)
│ │ ├── aiClient.ts # API 客户端
│ │ ├── freeModelDiscovery.ts # 免费模型发现
│ │ └── ...
│ ├── editor/ # 编辑器功能
│ ├── indexer/ # 代码索引
│ ├── mcp/ # MCP 协议
│ ├── security/ # 安全管理
│ └── spec/ # Spec Plan
├── webview-ui/ # React Webview (实验性)
├── build-ide/ # 独立 IDE 构建脚本
├── media/ # 图标资源
├── tests/ # 测试
└── package.json
工具清单 (18 个)
核心工具
| 工具 |
功能 |
read_file |
读取文件(支持分行 + 行号输出) |
write_file |
写入文件(自动 checkpoint) |
replace_in_file |
搜索替换(支持 replace_all) |
apply_diff |
Unified diff 多处编辑 |
execute_command |
执行终端命令(沙箱化) |
search_files |
全局搜索(glob + 上下文) |
list_dir |
列出目录 |
get_diagnostics |
获取代码诊断信息 |
codebase_search |
语义代码搜索 |
undo_edit |
回滚文件到 checkpoint |
扩展工具
| 工具 |
功能 |
web_search |
DuckDuckGo 网页搜索 |
web_fetch |
获取网页内容 |
open_file |
在编辑器打开文件 |
get_selection |
获取当前选中文本 |
insert_code |
在光标位置插入代码 |
get_open_editors |
获取已打开文件列表 |
explore_codebase |
快速浏览项目结构 |
verify_changes |
验证修改结果 |
开发
# 安装依赖
npm install
# 构建扩展
npm run build
# 构建 Webview
npm run build:webview
# 全量构建
npm run build:all
# 监听模式
npm run watch
# 运行测试
npm run test
技术栈
- 语言:TypeScript
- 平台:VS Code Extension API
- 构建:esbuild
- 测试:Vitest
- AI 协议:OpenAI-compatible Chat Completions API
- 记忆索引:BM25 + 知识图谱
- 可视化:Mermaid.js
与其他工具的对比
| 特性 |
菜包AI |
Cursor |
Copilot Chat |
Roo Code |
| 开源 |
✅ |
❌ |
❌ |
✅ |
| 多模型 |
✅ 11+ |
✅ |
❌ |
✅ |
| 记忆系统 |
✅ 金字塔 |
❌ |
❌ |
⚠️ 基础 |
| 知识图谱 |
✅ |
❌ |
❌ |
❌ |
| Agent 自动化 |
✅ 18 工具 |
✅ |
⚠️ |
✅ |
| 自动纠错 |
✅ |
✅ |
❌ |
⚠️ |
| MCP 支持 |
✅ |
❌ |
❌ |
✅ |
| 免费模型发现 |
✅ |
❌ |
❌ |
❌ |
| 中文优化 |
✅ |
❌ |
❌ |
❌ |
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!请阅读 CONTRIBUTING.md。
Star History
如果觉得有用,请给个 ⭐!
| |