我盯着屏幕,一个 Bug 调了三天。
一个并发场景下的数据竞争问题------逻辑不复杂,但边界情况特别多,我写了六七个分支,每个分支都有漏洞,跑起来就随机崩。
我试过自己推演,试过打印日志,试过跟同事讨论。都没用。
那天晚上 11 点,我打开 Claude,把代码和问题描述粘贴进去,顺手把「Extended Thinking」开关打开了。
42 秒后,它给了我回复。
我本来以为它会像平时一样,三五秒返回一个答案------那种「快但浅」的回复。
但这一次不一样。
它先花了几秒钟,把整个问题的结构梳理了一遍:
「我先梳理一下你代码里的并发链路......」 「目前有7个分支,其中3个存在数据竞争风险,分别是......」
然后它用整整 38 秒,把每一个风险分支的时序图在心里画了一遍。
最后它说:
「你的问题本质上是一个「先读后写」竞态,解决方案有两个思路......我倾向于第二种,因为它对现有代码侵入性更小。」
然后它给了代码。
我扫了一眼------对的,就是这个。
三种模式,三种质量
后来我开始刻意测试,发现 AI 回复的质量跟思考时间基本成正比。
快问快答(5秒内): 适合简单任务------写个函数、改个语法、解释一段代码。问得快答得快,不需要深度推理。
普通思考(10-20秒): 适合中等复杂度任务------设计一个接口、写一个工具类。这时候 AI 会在回复前列一个简要计划,但推理深度有限。
Extended Thinking(30秒以上): 适合复杂问题------架构设计、性能优化、多模块协调、边界条件分析。这时候 AI 真的会「多想一层」,而且往往是关键的那一层。
python
ini
import anthropic
client = anthropic.Anthropic()
# 关闭思考模式:快速回答
fast_response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "写一个Python并发安全的计数器"}]
)
# 开启思考模式:深度推理
deep_response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
thinking={
"type": "enabled",
"budget_tokens": 8000 # 分配更多思考token
},
messages=[{"role": "user", "content": "写一个Python并发安全的计数器,考虑高并发场景"}]
)
42 秒的那次,到底发生了什么
事后我把回复从头看了一遍,发现它思考的路径是:
第一步:问题拆解 它没有直接给答案,而是先把问题拆成了三个子问题------「谁在读」「谁在写」「竞态发生在哪里」。
第二步:时序分析 它在心里画了一张时序图,标出了所有可能的执行顺序,然后逐一排查漏洞。
第三步:方案评估 它提出了两个方案,从「侵入性」「可维护性」「性能」三个维度打分,选了综合最优的。
第四步:代码实现 在确定方案之后,才开始写代码。写完之后还主动检查了一遍自己的实现。
这个过程,跟我之前请教 senior 工程师时他思考问题的方式,几乎一模一样。
我后来怎么用
用多了之后,我总结出一套自己的用法:
简单任务不开启:问语法、问参数、问某个函数怎么用------普通模式就够了,开思考模式是浪费。
复杂任务必开启:架构设计、性能调优、多模块联调、边界条件分析------这类问题值得等那 42 秒。
思考时间看质量:回复生成后,看一眼它思考了多久。10 秒以内出答案的,我通常会追问一次让它展开。30 秒以上的,我一般直接采纳。
结合人工判断:AI 说的不一定对,但它的推理过程值得看。有时候它思考错了,但错的那一步本身就是有价值的------它告诉你「这个问题比我以为的更复杂」。
python
python
def ask_ai(code: str, problem: str, deep: bool = False):
"""
根据问题复杂度选择是否开启深度思考
简单任务 → 普通模式
复杂问题 → Extended Thinking
"""
config = {
"model": "claude-sonnet-4-20250514",
"messages": [{"role": "user", "content": f"{problem}\n\n{code}"}]
}
if deep:
config["thinking"] = {"type": "enabled", "budget_tokens": 8000}
config["max_tokens"] = 4096
else:
config["max_tokens"] = 1024
return client.messages.create(**config)
那之后我想明白一件事
以前我觉得,用 AI 写代码的好处是「快」。
现在我觉得,用 AI 写代码的好处是「想得更清楚」。
当你让 AI 深度思考一个问题的时候,你其实是在借用它的推理能力,把你自己没想到的边界条件、没想到的时序问题、没想到的架构缺陷,全部暴露出来。
它不只是帮你写代码。
它是帮你想清楚这个代码到底应该怎么写。
42 秒,换一个我想了三天没想出来的答案。
这个交易,我觉得值。
你用过 AI 的深度思考模式吗?有没有哪次让你印象特别深的? 评论区说说,我们互相种草。