当前位置: 首页 > news >正文

Claude Code源码分析之提示词工程

每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
在开发大模型应用的时候,管理系统提示词(System Prompt)往往是个让人头大的工程难题。要是只用简单的字符串拼接,随着活儿越接越多,代码会乱成一锅粥,而且上下文一长,Token 费就跟流水一样,响应还贼慢。
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
咱们通过翻看 Claude Code 泄露出来的底层代码(核心在src/QueryEngine.tssrc/utils/这些模块),来扒一扒它是怎么设计提示词管理架构的。它的核心路数其实就几招:把模块彻底拆解、死磕提示词缓存(Prompt Caching)优化、整一套多级路由调度,再配合上下文的并发组装。

1. 提示词的模块化登记制度

如果是复杂的活儿,还把 Prompt 写成一大坨字符串,那改起来肯定打架。Claude Code 这里学聪明了,搞了一套类似“积木块”的注册机制。想给 AI 加个新本事(比如对接某个 MCP 服务器),直接往组装层塞个新 Section 就行,不用去翻那几千行的大长篇,这思路非常符合软件开发里“对扩展开放,对修改关闭”的原则。
src/constants/systemPromptSections.ts里,各种规矩被拆成了独立的片段,通过systemPromptSection(name, compute)这个工厂函数统一管起来。咱们瞧瞧几个关键模块都说了啥:
getSimpleIntroSection(AI 的身份底色)
代码语言:javascript
AI代码解释

You are an interactive agent that helps userswithsoftware engineering tasks...IMPORTANT:Assistwithauthorized security testing...Refuse requestsfordestructive techniques...IMPORTANT:You mustNEVERgenerate or guess URLsforthe user unless you are confident...

拆解:上来先定调子,把安全红线划清楚,省得 AI 被带跑偏去干坏事。
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
getSimpleDoingTasksSection(干活的硬规矩)
代码语言:javascript
AI代码解释

# Doing tasks-In general,donot propose changes to code you haven't read.If a user asks about or wants you to modify a file,read it first.-Do not create files unless they're absolutely necessary...prefer editing an existing file...-If an approach fails,diagnose why before switching tactics...Escalate to the userwithAskUserQuestionTool only when you're genuinely stuck...-The right amountofcomplexity is what the task actually requires—no speculative abstractions...Three similar linesofcode is better than a premature abstraction.

拆解:这简直就是老程序员在带徒弟:没看过代码别乱动、能修就别重造、撞南墙了先找原因别瞎试。特别强调别整那些虚头巴脑的过度设计,简单好用才是硬道理。
getActionsSection(高危操作拦截)
代码语言:javascript
AI代码解释

# Executing actionswithcare Carefully consider the reversibility and blast radiusofactions.Generally you can freely take local,reversible actions like editing files or running tests.Butforactions that are hard to reverse...checkwiththe user before proceeding.Examples...Destructive operations:deleting files/branches,dropping database tables...When you encounter an obstacle,donot use destructive actionsasa shortcut...only take risky actions carefully,and whenindoubt,ask before acting.

拆解:这里引入了“爆炸半径”和“可撤回性”的概念。告诉 AI 哪些活儿可以放开手脚干,哪些删库跑路的骚操作必须得先请示。
getOutputEfficiencySection(别说废话)
代码语言:javascript
AI代码解释

# Output efficiencyIMPORTANT:Go straight to the point.Try the simplest approach first...Be extra concise.Keep your text output brief and direct.Leadwiththe answer or action,not the reasoning...If you can say itinone sentence,don't use three...

拆解:直接封杀了大模型的“长篇大论”,要求直奔主题,能一句话说完就别磨叽。
代码语言:javascript
AI代码解释

每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!

2. 靠 Prompt Caching 划清界限

想要薅 Anthropic 接口缓存的羊毛,前面的提示词就得稳如泰山。一旦命中缓存,成本能省掉九成,出字速度也飞快。为了这个,Claude Code 在架构上做了精密的隔离。
src/constants/prompts.ts里,系统专门立了个界碑:SYSTEM_PROMPT_DYNAMIC_BOUNDARY

  1. 静态保质区(稳如老狗):放那些几乎不变的规矩,比如人设、编码规范。这块内容在多轮对话里一直有效,稳稳命中缓存。
  2. 动态变动区(高频更新):挡在界碑后面。这里塞的是像 Git 状态、当前的临时笔记、还有随时在变的工具列表。
  3. 避坑指南:对于那些变动特别离谱的变量,系统还留了后门(比如DANGEROUS_uncachedSystemPromptSection),防止它们把上面辛苦攒的静态缓存给冲掉了。
    每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
    代码语言:javascript
    AI代码解释

3. 提示词也是分三六九等的

不管是正常的终端模式,还是专门的后台调度,或者是像 ExploreAgent 这种特定分身,面对不同场景,Claude Code 准备了五套优先级的打法(就在src/utils/systemPrompt.tsbuildEffectiveSystemPrompt()里):
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!

  • Priority 0 (最高覆盖):这是拿了尚方宝剑的。特殊时刻用它,能把之前所有的老规矩全撤了,强行让 AI 只听这一条命令。
  • Priority 1 (统筹模式):这就是“大脑”模式。任务太重时,不让 AI 直接干活,而是让它当指挥官,负责拆任务、分派给小弟。
  • Priority 2 (小弟专用):给特定技能的 Agent 准备的。比如专门找 Bug 的分身,就会被叮嘱“只许看,不许乱改”。
  • Priority 3 (用户自定义):给玩家留的。比如你在启动时喊一句“全程说中文”,这类指令就会插在这儿,优先级比默认值高。
  • Priority 4 (保底底座):最平常的模式,没特殊要求就按这一套来,该拼缓存拼缓存,该调动态调动态。
    系统还留了个appendSystemPrompt补丁位,专门用来强行塞一些安全补丁。

4. 情报搜集网

每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
在真正给大模型发请求之前,QueryEngine会启动“双轨搜集”模式,免得 AI 像瞎子摸象一样乱猜:

  1. 第一条线:扒底细(系统环境)。它会悄悄扫描你的项目,把 Git 分支名、最新的提交记录,还有你手头那些还没提交的 Diff 摘要全抓出来。这就是为什么你刚改完一行代码,它立马就能接上话。
  2. 第二条线:看规矩(用户环境)。大模型没表,所以系统会把精准的时间塞进去。更狠的是,它会去找项目根目录下的CLAUDE.md文件。这玩意儿就是你的“私人定制手册”,里面的代码风格、命名习惯,都会在这个时候喂给模型。
    每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!
    底层代码通过fetchSystemPromptParts()把这些情报攒齐,再按优先级排好序,最后打成一个 HTTP 包发给 LLM。

总结

看完了 Claude Code 的源码,你会发现现代化的提示词工程早就不是乱写一通的字符串了。它更像是一个精密的分发系统:一方面把职能拆细,搞模块化,适应各种工作模式;另一方面又紧贴底层的缓存机制,把死的和活的提示词隔离开。这种既要灵活性又要高性能的做法,非常值得咱们在做企业级 AI 工具时抄抄作业。
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型!

http://www.jsqmd.com/news/593541/

相关文章:

  • 2026成都火锅指南:精选口碑品牌,带你吃遍地道美味!市场成都火锅推荐行业优质推荐亮相 - 品牌推荐师
  • 第二次作业-2
  • P1113 杂务【洛谷算法习题】
  • 2026年亮化工程源头厂家哪家好,led线条灯/洗墙灯/亮化工程/泛光照明/led投光灯,亮化工程公司口碑推荐 - 品牌推荐师
  • flac3d7.0主应力方向导出与可视化:使用fish导出单元体数据并用matlab绘制塑性区图
  • Poppins字体完整指南:免费获取专业级多语言排版解决方案
  • FreeRTOS中断里用vTaskDelay()就死机?手把手教你STM32F407中断优先级与FromISR函数避坑
  • ECC 深度解析:怎么让 AI 代理变身你的金牌码农
  • P15447 「IXOI R1」柚社子
  • 旋转ReDet目标检测环境配置、旋转ReDet目标检测模型代跑训练、旋转ReDet目标检测模型改进创新旋转ReDet目标检测环境配置:Windows、Ubuntu、Centos、Macos等系统
  • 背完八股仍被挂?应届生面试真正卡人的是这些
  • 欧盟汽车网络安全法规R155与R156深度解读:合规与实施指南
  • 如何快速掌握DownKyi:从新手到专家的完整视频下载指南
  • CAN/CANFD数据记录仪在新能源汽车三电系统(VCU/BMS/MCU)中的关键应用与配置指南
  • Nav2实战:5分钟搞懂ROS2导航状态监控(从/navigate_to_pose反馈到状态机解析)
  • 第九届题目
  • 游戏盾不生效、攻击防不住?策略校验与节点切换教程
  • SEO 关键字和内容创作有什么关系
  • 从开源代码到飞行指令:深入QGroundControl(QGC)的MAVLink通信与模块化架构
  • 前端/全栈开发者看过来:用Cherry Studio + Node.js v20 + Yarn 4.6.0 搭建一个可调试的AI应用开发环境
  • 告别手写Testbench!用Vivado的AXI4-Stream VIP快速搭建验证环境(附SystemVerilog代码)
  • 双buck电路并联(VDCM控制+下垂控制) 变换器并联控制方案中,下垂控制是一种经典的控制策略
  • 避坑指南:Python处理CANoe的BLF文件时,如何解决通道匹配与ASC格式兼容性问题?
  • RFID芯片Datasheet保姆级解读指南:以NXP UCODE8为例,5分钟看懂关键参数
  • 如何通过open_agb_firm在3DS上实现原生GBA游戏体验
  • iOS/Android 集成游戏盾审核被拒?权限与合规配置修复
  • Markdown 驱动的系统提示词
  • 基于两相交错并联技术的Buck-Boost变换器仿真研究:采用双向DCDC及多环控制策略实现高...
  • 海康安防平台接口调试指南:从签名生成到Vue项目集成