Clipping 微信公众号

Claude Code越用越笨不是错觉!90% 的人没动过这 18 个设置,调完丝滑如初

by AI兴观点 原文 ↗
Created: 2026-05-25

公众号名称:程叙架构与AI.

作者名称:AI兴观点

发布时间:2026-05-25 19:55

原文链接:https://x.com/mnilax/status/2058269663788736907

✅点击上方🔺公众号🔺关注我✅


你有没有这种感觉:Claude 刚用的时候挺聪明,越用越不对劲。

输出开始飘,回答变啰嗦,以前能一次搞定的东西现在要来回改好几遍。你觉得是模型退步了——毕竟网上到处都在说「Claude 降智」。

但真正的问题可能不在模型。

Anthropic 给 Claude 塞了一大堆配置,125+ 个 settings.json 的键,官方文档只覆盖了大约 40 个。14 个藏在 UI 三层深处,4 个压根没有出现在任何文档里——你得靠 GitHub Issues、Discord 上的工程师漏嘴、或者凌晨一点翻 Claude Code 二进制才能找到。

大多数人从半年前开始就再也没碰过这些设置。账单悄悄涨,输出慢慢漂,然后怪模型不行。

下面这 18 个设置才是真正在驱动你的 Claude。对每个设置:它在哪、做什么、怎么调。


Claude.ai(8 个)

1. 记忆:作用域、排除列表、「忘掉这个」命令

位置: Settings → Capabilities → Memory

2026 年 3 月开放给 Free 和 Pro。默认存一切。三个大多数人没发现的控制项:项目级作用域、排除列表、即时「忘掉」命令。

为什么重要: 默认记忆会漂移。4-6 周后里面充满了一次性修正(「我在 Python 里喜欢用 tab 缩进」——你可能只在一个文件上说过一次)、跨项目泄露的上下文、过期的角色设定。Claude 在为一个错误的「你」做优化。

修复方法:

  • 开启项目级记忆(Scope per Project)——光这一条就解决大部分漂移
  • 排除列表里加上不想跨聊天出现的内容:医疗、薪资、客户名
  • 行内「忘掉」命令:在任何聊天里输入 forget what you remembered about [主题]

2. 扩展思考:按聊天切换

位置: 聊天输入框 → 模型选择 → Extended Thinking:Off / Light / Full

适合数学、调试、多步规划。但摘要、翻译、格式化、快速查询上完全浪费——多出 3-12 秒延迟 + 20-40% 额外 tokens。

修复: 默认 Light(让模型自己判断用不用思考),做困难工作时切 Full。不少人在第一周就把 Opus 的 token 消耗降了 18-25%。

3. 自定义风格:不是语气开关,是输出契约

位置: 聊天输入框 → 风格选择器 → Create New Style

贴一份 200-1500 字的指令文件,该风格的每次回答都会自动套用它。真正用途是强制执行结构规则——引用格式、禁止用词、必要内容结构、长度上限。

修复: 每个工作流创建一个 Style。作者的「Draft for X」风格长这样:

# Style: Draft for X
Output contract:
- Open with one concrete number or named entity.
- Sentences under 18 words where possible.
- No "delve", "leverage", "robust", "unlock".
- If listing 3+ items, use a hyphen list.
- End on a statement, not a question.

三个 Style 轮换(Draft for X、Code review、Summarize PDF),作者说这替代了他 80% 的保存提示词。

4. 项目「指令」字段:大多数人留空

位置: 任意项目 → ⋯ → Edit project instructions

相当于一个 system prompt,注入到该项目每次对话。大多数人光记得用知识上传功能,同一个页面的指令字段却是空的——我敢说 70% 的项目里它都是空白。

修复: 当 CLAUDE.md 来写。<400 字,写好角色、怀疑程度、格式规则、永远不做什么。每月重读一次,修剪。

5. 搜索历史聊天(Pro+)

位置: Settings → Profile → Search past chats(需手动开启)

做的是关键词匹配,不是语义匹配。「昨天讨论的那个中国机器人的事」——如果历史聊天里没出现「Chinese robots」或「China + robots」这两个词,什么都搜不到。

修复: 用内容名词搜。「Polymarket Iran」管用,「上次我们说的事」不管用。

6. 网页搜索引用格式

位置: 聊天输入框 → + → Web search,配合 Settings → Capabilities → Web search citations

默认 Inline 引用会破坏复制粘贴——你把回答粘到别处时,带着一堆指向空处的标记。Footnotes 模式保持答案干净,末尾列出来源。

修复: 如果你会把 Claude 的网页搜索结果复制到文档/邮件里,切到 Footnotes。

7. Cowork「信任文件夹」陷阱

位置: Settings → Connectors → Cowork → Trusted folders

一旦文件夹进了信任列表,Claude 每次 Cowork 会话都直接读取,不再弹窗询问。3 月测试时加了一个文件夹——现在还在信任列表里。Claude 一直在默默地读它。

修复: 打开信任列表,删掉所有不是当前活跃项目的内容。

8. 隐身模式:它实际跳过了什么

快捷键: Cmd/Ctrl + Shift + N

不只是在侧边栏隐藏。它跳过了四个系统:记忆写入、聊天历史、搜索索引、训练数据(如果开了的话)。

修复: 处理敏感内容时刻意用它。薪资、医疗、法律草稿、客户名。三秒的事,不用多想。



Claude Code(7 个)

以下设置都在 ~/.claude/settings.json(用户级)或 .claude/settings.json(项目级)中。

9. enabledPlugins:禁用,别卸载

每个活跃插件都会加载 hooks + SKILL.md + 工具 schema 进你的上下文预算。作者开搞时检查发现有 14 个插件开着。现在只留了 3 个。

{
  "enabledPlugins": {
    "formatter@acme-tools": true,
    "deployer@acme-tools": false,
    "old-experiment@personal": false
  }
}

设为 false 的插件保持已安装但不加载。需要时通过 /plugin enable name@marketplace 按会话启用。

10. permissions.deny:有个已知 bug

{
  "permissions": {
    "deny": [
      "Read(.env)", "Read(.env.*)", "Read(**/*secret*)",
      "Bash(rm -rf:*)", "Bash(sudo:*)"
    ]
  }
}

问题:有一个 bug 导致 deny 规则有时不生效。debug 日志显示「0 matchers found」,但 Claude 照样读文件。

修复: 文件系统层加第二道防护——chmod 600 .env。Claude Code 里用 /permissions 验证规则是否生效。

11. hooks.SessionStart:砍掉 30% 上下文膨胀

大多数人 CLAUDE.md 塞了 5K tokens,因为所有项目规则都往里放。SessionStart 让你只加载当前分支相关的规则

{
  "hooks": {
    "SessionStart": [{
      "matcher": "startup",
      "hooks": [{
        "type": "command",
        "command": "cat .claude/context-$(git branch --show-current).md 2>/dev/null || true"
      }]
    }]
  }
}

main 分支加载 context-main.md,feat/auth 分支加载 context-feat-auth.md。每个文件都很小。上下文预算不再白流失。

12. disableAllHooks:紧急开关

一个开关禁用所有 hooks。2026 年 3 月更新的功能,但大多数人不知道它的存在。

当 Claude Code 行为异常时(幽灵命令、启动卡死、神秘写入),作者说十次里有七八次是某个 hook 在捣乱。逐一排查太慢,这个开关能一次性全关掉。

修复: 保持 false。出问题时翻到 true 重启,看问题是否消失。如果是,逐一启用 hook 排查;如果否,bug 在别处。

13. 按项目设置模型

全局设 Opus 做困难工作没问题。但打开一个主要是写文档或 shell 脚本的项目,也付 Opus 的价格?Haiku 以 1/20 的成本就能干。

// /docs 项目:
{ "model": "claude-haiku-4-5-20251001" }

// /infra 项目:
{ "model": "claude-sonnet-4-6" }

// /core-engine 项目:
{ "model": "claude-opus-4-7" }

项目级覆盖永远优先于全局设置。打开项目,用对的模型。

14. mcpServers:用 enabled 标志

每连一个 MCP 服务器,它的完整工具 schema 就加载到你的上下文里——800 到 6,000 tokens 不等。

三个月后你有 12 个连接,真正在用的只有 3 个。那 9 个不用的每次会话吃掉你 25-40K tokens。

{
  "mcpServers": {
    "github":   { "command": "...", "enabled": true },
    "postgres": { "command": "...", "enabled": true },
    "slack":    { "command": "...", "enabled": false }
  }
}

enabled: false 保持配置但不加载。需要时再切。

15. cleanupPeriodDays:没人提过的缓存

默认 30 天清理会话数据。Dreaming 和历史聊天搜索都依靠这些数据。30 天 = 只能学一个月的工作数据。180 天 = 6 倍信号。

{ "cleanupPeriodDays": 180 }

磁盘成本约 200MB。值。

完整 settings.json(作者给的成品):

{
  "model": "claude-sonnet-4-6",
  "enabledPlugins": {
    "formatter@acme-tools": true,
    "old-experiment@personal": false
  },
  "permissions": {
    "deny": [
      "Read(.env)", "Read(.env.*)", "Read(**/*secret*)",
      "Bash(rm -rf:*)", "Bash(sudo:*)"
    ]
  },
  "hooks": {
    "SessionStart": [{
      "matcher": "startup",
      "hooks": [{
        "type": "command",
        "command": "cat .claude/context-$(git branch --show-current).md 2>/dev/null || true"
      }]
    }]
  },
  "disableAllHooks": false,
  "mcpServers": {
    "github": { "command": "npx", "args": ["@modelcontextprotocol/server-github"], "enabled": true },
    "postgres": { "command": "npx", "args": ["@modelcontextprotocol/server-postgres"], "enabled": false }
  },
  "cleanupPeriodDays": 180
}

项目级覆盖也是一样的逻辑,只需一行:

// .claude/settings.json(在 docs 项目中)
{ "model": "claude-haiku-4-5-20251001" }


API 和 Console(3 个)

这三个是成本影响最大的。每个能改你的账单 30-90%。

16. cache_control:断点放对位置

位置: API 请求体,任意内容块的 cache_control 字段

把 prompt 某段标记为可缓存,后续相同前缀的请求按~10% 计费(Anthropic 官方数据)。这是 API 最大成本杠杆——但很多人断点位置没放对,省钱的效力大打折扣。

作者说他在自己配置上把断点修好后,账单从 $340/月砍到了 $87

# 错误 —— 断点在用户消息后面,没有可重用的东西
messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {"role": "user", "content": user_question,
     "cache_control": {"type": "ephemeral"}}
]

# 正确 —— 断点在稳定 system prompt 之后,下次调用完整命中缓存
messages = [
    {"role": "system", "content": SYSTEM_PROMPT,
     "cache_control": {"type": "ephemeral"}},
    {"role": "user", "content": user_question}
]

对不变的 system prompt,用 1 小时 TTL:

{"cache_control": {"type": "ephemeral", "ttl": "1h"}}

临界点:缓存在 TTL 窗口内被读 2 次以上就划算。

17. inference_geo:数据驻留税

仅美国数据驻留让 Opus 4.7+ 贵 10%。不在标准定价卡上,账单上才看得到。

修复: 去核实数据驻留要求是合同性的还是意愿性的。如果是后者,省掉这个参数,每次 Opus 调用省 10%。如果你确实需要,把 10% 计入模型选择——基础价 $3 的 Sonnet 实际上变成 $3.30。

18. 工作区级速率限制

账户级限制防止你破产。工作区级限制防止你的面向用户的交互产品被一个失控的批处理作业吃掉全部配额。

修复: 每个场景建一个工作区(交互聊天、批处理、内部工具、实验)。每个限制设为账户层级的 60-70%,留 30% 给需要突发的工作区。

还有个隐藏的坑:工作区里每个功能还有自己的功能级上限——在概览页看不到,要点进功能卡才显示,默认无上限。三个功能在一个工作区里,一个能把另外两个饿死。



18 项检查清单

20 分钟走一遍。如果 12 个月没碰过的内容,以后大概也不会碰了。

Claude.ai

  • [ ] #1 记忆:项目范围限定 + 排除列表
  • [ ] #2 扩展思考:默认 Light
  • [ ] #3 自定义风格:至少一个工作流风格
  • [ ] #4 项目指令:填了所有活跃项目
  • [ ] #5 历史聊天搜索:开(Pro+)
  • [ ] #6 网页引用:Footnotes 模式
  • [ ] #7 Cowork 信任文件夹:已审查修剪
  • [ ] #8 隐身模式:记熟快捷键

Claude Code

  • [ ] #9 enabledPlugins:只活跃的设为 true
  • [ ] #10 permissions.deny:拦了 env、sudo、rm -rf,OS 层备份已就位
  • [ ] #11 hooks.SessionStart:分支感知上下文加载器
  • [ ] #12 disableAllHooks:false(知道开关在哪)
  • [ ] #13 模型:docs/infra/core 全有项目级覆盖
  • [ ] #14 mcpServers:用 enabled 标志,不是删除
  • [ ] #15 cleanupPeriodDays:180

API / Console

  • [ ] #16 cache_control:断点在稳定 system prompt 后,用 1h TTL
  • [ ] #17 inference_geo:仅当合规确实需要时才设
  • [ ] #18 工作区 + 功能级速率限制:全设好

审计脚本(每周跑一次):

#!/usr/bin/env bash
# claude-audit.sh — 标记设置漂移,保存为 ~/bin/claude-audit.sh 并 chmod +x

CLAUDE_DIR="$HOME/.claude"
SETTINGS="$CLAUDE_DIR/settings.json"

echo "=== 已启用插件 ==="
jq '.enabledPlugins // {} | to_entries | map(select(.value==true)) | length' "$SETTINGS"
echo "目标:3-5 个活跃"

echo "=== MCP 服务器已启用 ==="
jq '.mcpServers // {} | to_entries | map(select(.value.enabled==true)) | length' "$SETTINGS"
echo "目标:3 个常开"

echo "=== permissions.deny 规则 ==="
jq '.permissions.deny // [] | length' "$SETTINGS"
echo "目标:>=5 条"

echo "=== SessionStart hook ==="
jq '.hooks.SessionStart // [] | length' "$SETTINGS"
echo "目标:>=1"

echo "=== cleanupPeriodDays ==="
jq '.cleanupPeriodDays // 30' "$SETTINGS"
echo "目标:180"

echo "=== 按项目模型覆盖 ==="
find . -maxdepth 3 -name "settings.json" -path "*/.claude/*" | while read f; do
  model=$(jq -r '.model // "—"' "$f")
  echo "  $f → $model"
done

echo "=== API cache_control ==="
echo " 每段>1K tokens 的 system_prompt 应有 cache_control + 1h TTL"

没选入的四个设置

Adaptive Reasoning 开关:默认已调好。30 天测试找不到值得改的场景。相信默认值。

技能自动激活:渐进式披露已经很好,别关。

Dispatch 移动端→桌面端:有用的功能,不是审计项。

按工作区 max_tokens 上限:省钱但伤长输出,值得按工作区测,不值得默认推荐。


今晚走一遍清单。大多数人会修 6-8 项,少数人修 14+。账单和数据会告诉你值不值。


**最后说一句:**我翻完全文后的感受是:默认设置是为「平均用户」设计的,而你不是平均用户。 就跟刚买的手机有一堆默认权限和预装 App 一样,Claude 的智能,很大程度取决于你有没有花那 20 分钟过一遍设置。

三个最优先的:① Memory 项目作用域 — 解决输出漂移最快的一刀 ② cache_control 断点 — 如果用 API,这是唯一一个能从 $340 降到 $87 的设置 ③ enabledPlugins + mcpServers — 你被闲置服务吃掉的那部分上下文预算,可能比你想象的多得多。

转给在用 Claude 的朋友,他可能正好需要。

如果觉得这篇文章有帮助,欢迎点赞、在看、转发!有问题也可以在评论区留言,我会尽量回复!


cover_image

原创 AI兴观点 程叙架构与AI.

阅读原文


内容效果不满意?点此反馈

输入关键词开始搜索