Skip to content

提示词系统

提示词工程不只是写几句话的事。Claude Code 的提示词系统是编译时 + 运行时的双层架构,静态部分零开销,动态部分按需注入。

双层架构

静态部分(编译时)

构建时就确定的内容:

  • AI 身份定义:"Claude, an AI coding assistant built by Anthropic"
  • 工具使用优先级规则
  • 输出格式规范
  • 安全约束和行为边界

这些内容不会变,所以编译时就写死了,不占运行时开销。

动态部分(运行时)

每次会话可能不同的内容:

  • Git 上下文(当前分支、修改文件)
  • CLAUDE.md 记忆文件内容
  • 可用工具列表
  • 注册的 prompt section

Section 注册机制

systemPromptSection() 函数允许注册可复用的提示词片段:

typescript
const section = systemPromptSection({
  name: 'git-context',
  compute: async () => {
    return `Current branch: ${branch}\nModified: ${files}`
  }
})

注册后的 section 会被缓存。还有一个 uncached 变体:

typescript
DANGEROUS_uncachedSystemPromptSection()

名字里带 DANGEROUS 是提醒你——不缓存意味着每次都要重新计算,性能开销大。除非内容确实每次都不同,否则用缓存版本。

关键常量

constants/ 目录下 21 个文件,定义了各种限制:

常量说明
上下文窗口200,000 tokensAPI 最大输入
文件读取上限500KB单次读取限制
文件写入上限1MB单次写入限制
并发工具数10同时执行的工具数
工具超时120 秒单个工具最长执行时间

这些数字是经过实际使用调优的——太大浪费资源,太小影响体验。

安全边界

提示词中嵌入了严格的安全规则:

  • 不允许删除用户数据
  • 不允许修改系统文件
  • 不允许未授权的网络访问
  • 优先使用工具获取信息,而不是猜测