Skip to content

11.3 高级技巧与集成

🎯 本节目标

掌握进阶技巧:MCP 集成、项目规则配置、模型选择策略,以及如何处理现有代码库。


📐 设置项目规则

为什么需要项目规则?

项目规则让你定义在整个项目中 AI 应该遵循的约定和规范。

项目规则的价值:
├── 保持代码风格一致
├── 强制执行团队约定
├── 减少重复说明
└── 自动应用到所有对话

Cursor 规则配置

在项目根目录创建 .cursor/rules/ 文件夹:

bash
mkdir -p .cursor/rules

创建规则文件(Markdown 格式):

markdown
# .cursor/rules/code-style.md

## 代码风格规范

- 使用 TypeScript 而不是 JavaScript
- 所有函数必须有类型注解
- 使用 camelCase 命名变量
- 组件文件使用 PascalCase
- 每个文件不超过 200 行

## 技术栈约定

- 前端:React + TypeScript + Tailwind CSS
- 后端:FastAPI + Python 3.12
- 数据库:PostgreSQL
- 不使用 jQuery 或其他过时库

## 禁止事项

- 不要硬编码 API 密钥
- 不要使用 any 类型
- 不要忽略 TypeScript 错误

aider 规则配置

创建规则文件和配置:

bash
# 创建规则文件
touch rules.md

# 在 .aider.conf.yml 中添加:
read: rules.md

全局规则(应用于所有项目):

bash
# 创建全局规则文件
touch ~/.global_conventions.md

# 在 .aider.conf.yml 中:
read: [~/.global_conventions.md, rules.md]

让 AI 帮你创建规则

💡 技巧:让 AI 自动生成规则

1. 分析你的 PRD
2. 让 AI 提取技术约定
3. 自动生成规则文件

参考:https://ghuntley.com/specs/

🔌 MCP(Model Context Protocol)

什么是 MCP?

MCP 是 Anthropic 开发的标准协议,用于让 LLM 与外部工具和数据交互。

MCP 的工作原理:

         ┌─────────┐
         │   LLM   │
         └────┬────┘


         ┌─────────┐
         │   MCP   │  ← 标准协议
         └────┬────┘

     ┌────────┼────────┐
     │        │        │
     ▼        ▼        ▼
 ┌──────┐ ┌──────┐ ┌──────┐
 │数据库│ │文件系统│ │API│
 └──────┘ └──────┘ └──────┘

MCP vs REST API

对比REST APIMCP
定义通用 Web API 标准LLM 专用协议
集成需要手动解析LLM 原生支持
功能请求/响应工具调用 + 资源访问
易用性需要额外提示词自动理解意图

相关协议

协议开发者用途
MCPAnthropicLLM ↔ 工具通信
SLOP社区简化的开放协议
A2AGoogleAgent ↔ Agent 通信

查找 MCP 服务器

Anthropic 官方维护的 MCP 服务器列表: github.com/modelcontextprotocol/servers

常用 MCP 服务器:

服务功能
filesystem文件系统访问
postgresPostgreSQL 数据库
githubGitHub API
slackSlack 消息
notionNotion 数据库
browsertools浏览器调试

⚠️ 注意:目前只有 Claude 模型完整支持 MCP。使用 MCP 工具时确保选择 Claude。


🎛️ 模型选择策略

按用途选择模型

用途推荐模型
头脑风暴GPT-5, 4o, o3, Grok
编码Claude Sonnet 4, Gemini 2.5 Pro, Grok, GPT-5, o3, o4-mini

查看最新排行榜

LLM 模型更新非常快,请参考这些排行榜:

跨模型验证

最佳实践:
├── 不要只依赖一个模型
├── 用不同模型验证关键代码
├── 比较多个模型的输出
└── LLM 是 "Yes Machine",保持批判性思考

📦 处理现有代码库

打包代码库上下文

使用工具将代码库打包成 LLM 可以理解的格式:

repomix

bash
# 安装
npm install -g repomix

# 使用
repomix --output context.txt

# 这会生成一个包含整个代码库的文件

网站repomix.com

files-to-prompt

bash
# 安装
pip install files-to-prompt

# 使用
files-to-prompt src/ > context.txt

仓库github.com/simonw/files-to-prompt

处理大型代码库的技巧

markdown
1. 按功能模块拆分
   不要一次加载整个代码库
   只加载与当前任务相关的部分

2. 任务级别的 prompt
   不要说:"改进整个项目"
   而是说:"实现用户认证功能"

3. 提供 mini-PRD
   为特定功能创建小型需求文档
   就像指导一个初级开发者处理一个 GitHub Issue

4. 使用 Cursor 的索引功能
   Cursor 可以自动索引你的项目
   这比手动打包更智能

Karpathy 的方法

"我通常会用 AI 来实现一个特定功能,而不是让它理解整个项目。我给它一个功能描述,它就生成代码。如果代码不能工作,我就把错误信息给它修复。" — Andrej Karpathy


🏗️ 良好的代码结构

问题:LLM 不擅长代码结构

现状(2025年4月):
├── LLM 擅长生成能工作的代码
├── 但不擅长生成结构良好的代码
├── 缺乏适当的分层和关注点分离
└── 这影响可读性、可维护性和缺陷率

解决方案:指导式 prompt 顺序

markdown
数据库应用的 prompt 顺序:

1. 首先定义数据类型/记录结构
   "创建 User 和 Post 的类型定义..."

2. 然后构建数据访问层
   "创建 UserRepository 类来封装数据库访问..."

3. 最后编写业务逻辑
   "使用 UserRepository 实现用户注册逻辑..."

在项目规则中强制分层

markdown
# .cursor/rules/architecture.md

## 架构原则

- 不要违反分层架构
- 如果需要新的底层方法,添加到封装层
- 业务逻辑不应该直接访问数据库
- 分离 engine 代码和 policy 代码

骨架优先开发

技巧:先创建代码骨架

1. 手动写出类和函数的骨架
2. 定义接口和类型
3. 让 LLM 填充实现
4. 确保核心架构按你的意图设计

这样可以:
├── 确保架构符合预期
├── 让 LLM 在明确的边界内工作
├── 保持代码的可维护性
└── 减少后期重构工作

🔄 从头开始 vs 使用样板

从头开始(推荐)

优点:
├── LLM 在干净的环境中表现更好
├── 没有遗留代码的约束
└── 代码风格完全一致

适用场景:
├── 新项目
├── POC 和原型
└── 学习和实验

使用样板/脚手架

步骤:
1. 使用脚手架创建项目
2. 在规则中说明脚手架的约定
3. 使用 Cursor 索引或 repomix 提供上下文

适用场景:
├── 团队有标准模板
├── 需要特定的项目结构
└── 企业级项目

🔧 在 Claude Code 中使用其他 LLM

使用 claude-code-router

想在 Claude Code CLI 中使用其他模型(如 Kimi K2)?

bash
# 1. 安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 2. 安装 router
npm install -g @musistudio/claude-code-router

# 3. 配置 OpenRouter
# 编辑 ~/.claude-code-router/config.json

配置示例:

json
{
  "Providers": [
    {
      "name": "kimi-k2",
      "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
      "api_key": "YOUR_OPENROUTER_API_KEY",
      "models": ["moonshotai/kimi-k2"],
      "transformer": {
        "use": ["openrouter"]
      }
    }
  ],
  "Router": {
    "default": "kimi-k2,moonshotai/kimi-k2"
  }
}

运行:

bash
# 使用 router 启动
ccr code

# 你会看到:API Base URL: http://127.0.0.1:3456
# 表示正在使用本地代理

🔗 下一步

继续学习 11.4 测试与安全最佳实践 —— 确保你的 AI 生成代码安全可靠!


📚 本节参考资源

基于 MIT 许可证发布。内容版权归作者所有。