Claude Code 中转介绍
最佳实践
Prompt caching、CLAUDE.md、上下文管理、调试与团队协作的实战经验。
模型选择策略
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 日常 80% 任务 | claude-sonnet-4-6 | 又快又好又便宜 |
| 难题 / 架构 / 跨模块重构 | claude-opus-4-7 | 推理最强,多等几秒值得 |
| Tab 补全、commit msg | claude-haiku-4-5-20251001 | 最快、最便宜 |
| 生产环境 / CI 锁版本 | claude-sonnet-4-5-20250929 等快照 | 行为永久锁定,可复现 |
Prompt Caching:省钱 80% 的关键
长 system prompt 必缓存
500+ tokens 的 system prompt 加上 cache_control,命中后只算 10% 价格
大段固定 context 必缓存
API 文档、代码库片段、规范说明等固定内容写一次缓存全程复用
代码示例
from anthropic import Anthropic
client = Anthropic(
api_key="YOUR_API_KEY",
base_url="https://nexor.nexoraivision.com/v1"
)
LONG_SYSTEM = """
你是这个项目的资深贡献者。规则:
1. ...(500+ tokens 的详细规则)
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": LONG_SYSTEM,
"cache_control": {"type": "ephemeral"} # 关键
}
],
messages=[{"role": "user", "content": "..."}]
)
# 查看缓存命中情况
print(response.usage)
# {
# "input_tokens": 10,
# "cache_creation_input_tokens": 0, # 0 表示命中
# "cache_read_input_tokens": 523, # 命中的缓存 token 数
# "output_tokens": 150
# }
Claude Code CLI 自动开启
CLI 默认对 system prompt 和 CLAUDE.md 启用 prompt caching,无需手动配。
CLAUDE.md:项目记忆系统
在项目根目录建 CLAUDE.md,Claude Code 每次启动会自动加载并 cache。
推荐内容
# 项目名
## 技术栈
- Vue 3 + TypeScript + Nuxt 4
- pnpm 包管理
- Vitest 测试
## 目录结构
- `app/` — Nuxt 应用代码
- `server/` — API routes
- `content/` — 文档 Markdown
## 编码规范
- 函数式优先,避免类继承
- 错误用 Result<T,E>,不抛异常
- 组件命名 PascalCase,工具函数 camelCase
## 常用命令
```bash
pnpm dev # 启动 dev server
pnpm test # 跑测试
pnpm lint:fix # 自动修 lint
已知坑
- nuxt-content 不支持嵌套 frontmatter
- vite 7.x 与某些插件不兼容
### 自动生成
```bash
claude
> /init # 让 Claude 帮你生成 CLAUDE.md
它会扫描项目结构、package.json、README 自动写一份。
嵌套层级
支持多层 CLAUDE.md:
项目/
├── CLAUDE.md # 全局约定
└── packages/
└── api/
└── CLAUDE.md # API 包专属约定
切换工作目录时 Claude 会自动加载对应的 CLAUDE.md。
上下文管理
别一次塞 50 个文件
塞太多模型反而分散。只放与当前任务直接相关的文件。
用 @ 引用 vs --add-dir
# 交互模式:精准引用
> 看下 @src/api/user.ts 的 getUserById 函数
# 启动时:批量加载
claude --add-dir ./src/api
长会话用 /compact
会话变长后主动压缩:
> /compact
Claude 会概括历史保留要点,腾出上下文空间。
切话题前 /clear
完成一个任务后切到无关任务前,先 /clear。
Prompt 写法
❌ 不好
帮我写个登录功能
✅ 好
基于 @src/auth/ 现有代码,给登录功能加上:
1. 邮箱 + 密码登录
2. 失败 3 次锁定 5 分钟
3. 锁定时间存 Redis,key 格式 `lock:user:<email>`
4. 写 vitest 测试覆盖:正常登录、密码错、锁定中、解锁后
5. 用现有的 Result<T,E> 错误处理风格,不要 throw
参考 @src/auth/utils.ts 的命名风格。
长任务先 plan 再 execute
> 我想给现有的 KV 缓存层加 LRU 淘汰策略,不破坏已有调用方。
> 先告诉我你打算怎么改、影响哪些文件、风险点。不要写代码。
[Claude 给方案]
> 方案 OK,按你说的顺序开始改。每改完一个文件先告诉我,我看完确认你再继续。
让 Claude 先输出计划再实现,错误率显著下降。
安全与隐私
必备配置
| 配置 | 作用 |
|---|---|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 | 关闭遥测、版本检查等无关流量 |
CLAUDE_CODE_ATTRIBUTION_HEADER=0 | 不把请求标记为 Claude Code |
OpenCode store: false | 不持久化响应 |
Key 永远不进 Git
**/.claude/settings.json
**/.continue/config.json
**/opencode.json
给生产 Key 加 IP 白名单
控制台 → API Keys → 点 Key → IP 白名单填 CI / 服务器公网 IP。
分环境用不同 Key
- 本地开发:一个 Key,宽松额度
- CI / 生产:另一个 Key,开 IP 白名单 + 日额度上限
调试与排错
让 Claude 解释错误
npm test 2>&1 | claude -p "解释这堆失败,从最根本的问题开始排"
让 Claude 自动迭代修
claude --max-turns 20 "实现 utils/date.ts 的 formatRelative,写完跑 npm test,失败就改直到全过"
--max-turns 限制最多回合数,防止跑飞。
用 --verbose 看请求详情
claude --verbose "..."
会打印每个 HTTP 请求 / 响应详情,方便排查中转是否生效。
健康检查
claude doctor
输出:环境变量是否设、Key 是否有效、节点延迟、CLI 版本是否最新。
与团队协作
共享 prompt 模板
项目/
└── .claude/
└── prompts/
├── review-pr.md
├── write-test.md
└── debug-flake.md
执行:
claude -p "$(cat .claude/prompts/review-pr.md)"
CI 里跑 Claude 做代码 review
GitHub Actions 示例:
- name: Claude PR review
env:
ANTHROPIC_BASE_URL: https://nexor.nexoraivision.com
ANTHROPIC_AUTH_TOKEN: ${{ secrets.NEXOR_CLAUDE_KEY }}
run: |
git diff origin/main --unified=10 > diff.txt
claude -p --output-format json --model claude-sonnet-4-6 \
"review 下面的 diff,输出 JSON: {issues:[{file,line,severity,message}]}" \
< diff.txt > review.json
长任务通知
# macOS
claude "重构 auth 模块" -f src/auth/*.ts && \
osascript -e 'display notification "完成" with title "Claude"' && \
afplay /System/Library/Sounds/Glass.aiff
更多见 通知配置。
性能优化清单
- ✅ 用
claude-sonnet-4-6替代默认(不是必须 Opus) - ✅ 长 system prompt 加
cache_control - ✅ 控制台节点选「自动」(智能选最快)
- ✅ Tab 补全用
claude-haiku-4-5-20251001 - ✅ 项目根放
CLAUDE.md(自动缓存) - ✅ 长会话主动
/compact压缩 - ✅ 跑批量任务别开
--verbose(IO 拖慢)
长任务跑完想自动提醒?配置 通知系统。
