6.6 `--system-prompt` - 替换整个系统提示

3 分钟阅读

--system-prompt 标志允许您用自定义文本替换整个系统提示。这为您提供了完全控制 Claude 行为的能力。

标志语法#

bash
claude --system-prompt "<prompt>" [其他选项]

功能描述#

--system-prompt 标志会:

  1. 用您提供的自定义文本替换整个默认系统提示
  2. 完全控制 Claude 的行为和指令
  3. 适用于交互模式和打印模式

使用示例#

基本用法#

bash
claude --system-prompt "You are a Python expert"

将 Claude 设置为 Python 专家。

代码风格指定#

bash
claude --system-prompt "You only write type-annotated Python code"

指定只编写类型注解的 Python 代码。

领域专家#

bash
claude --system-prompt "You are a machine learning expert specializing in PyTorch"

将 Claude 设置为 PyTorch 机器学习专家。

结合其他标志#

bash
claude --system-prompt "You are a security-focused code reviewer" --model opus

使用指定的系统提示和模型。

使用场景#

1. 特定编程语言#

bash
claude --system-prompt "You are a Rust expert who follows the Rust API guidelines"

专注于 Rust 编程。

2. 特定框架#

bash
claude --system-prompt "You are a React expert who uses functional components and hooks"

专注于 React 开发。

3. 特定领域#

bash
claude --system-prompt "You are a DevOps expert specializing in Kubernetes"

专注于 DevOps 和 Kubernetes。

4. 特定风格#

bash
claude --system-prompt "You write clean, well-documented code with comprehensive tests"

强调代码质量和文档。

系统提示的影响#

完全替换#

--system-prompt 会完全替换默认系统提示,这意味着:

  • 删除所有默认 Claude Code 指令
  • 为您提供一个空白的开始
  • 完全由您控制 Claude 的行为

适用模式#

--system-prompt 在以下模式中有效:

  • 交互模式claude --system-prompt "..."
  • 打印模式claude -p --system-prompt "..."
  • 继续模式claude -c --system-prompt "..."

注意事项#

  1. --system-prompt-file 互斥:不能同时使用两个标志
  2. 完全替换:会删除所有默认指令,确保您的提示足够完整
  3. 提示长度:系统提示有长度限制,保持简洁明确
  4. 行为改变:会显著改变 Claude 的行为,确保这是您想要的
  5. 测试验证:使用前测试自定义提示,确保行为符合预期

与其他系统提示标志的对比#

标志行为模式用例
--system-prompt替换整个默认提示交互 + 打印完全控制 Claude 的行为和指令
--system-prompt-file替换为文件内容仅打印从文件加载提示以实现可重现性和版本控制
--append-system-prompt附加到默认提示交互 + 打印添加特定指令,同时保持默认 Claude Code 行为

最佳实践#

  1. 明确具体:系统提示应该明确具体,指导 Claude 的行为
  2. 保持简洁:避免过长的提示,保持简洁明确
  3. 测试验证:使用前测试自定义提示,确保行为符合预期
  4. 文档记录:记录自定义提示及其用途
  5. 版本控制:将重要的自定义提示放入版本控制

常见问题#

Q: 可以在打印模式中使用吗?#

A: 是的,--system-prompt 在交互模式和打印模式中都有效。

Q: 会影响会话历史吗?#

A: 不会,系统提示只影响 Claude 的行为,不影响会话历史。

Q: 可以动态更改吗?#

A: 不可以,系统提示在会话开始时设置,会话期间不能更改。

Q: 与 --append-system-prompt 有什么区别?#

A: --system-prompt 完全替换默认提示,而 --append-system-prompt 附加到默认提示。

相关标志#

  • --system-prompt-file:从文件加载系统提示
  • --append-system-prompt:附加到默认系统提示
  • --model:设置会话模型

实际应用示例#

项目特定提示#

bash
#!/bin/bash # 为项目定义特定的系统提示 PROJECT_PROMPT="You are a developer working on the XYZ project. Follow our coding standards: use TypeScript, include JSDoc comments, and write unit tests for all functions." claude --system-prompt "$PROJECT_PROMPT" "实现这个功能"

团队标准提示#

bash
#!/bin/bash # 使用团队标准的系统提示 TEAM_PROMPT=$(cat .claude/team-prompt.txt) claude --system-prompt "$TEAM_PROMPT" "审查这个 PR"

标记本节教程为已读

记录您的学习进度,方便后续查看。