6.8 --append-system-prompt - 附加到默认系统提示
第 6 章 · CLI 标志说明 · 第2部分:命令参考
概述#
--append-system-prompt 标志允许您将自定义内容附加到 Claude 的默认系统提示之后,而不是完全替换它。这种方式可以保留 Claude 的核心行为和能力,同时添加您特定的指导或约束。
基本语法#
bash复制claude --append-system-prompt "附加的提示内容"
与 --system-prompt 的区别#
| 标志 | 行为 | 使用场景 |
|---|---|---|
--system-prompt | 完全替换默认系统提示 | 需要完全自定义 Claude 的行为 |
--append-system-prompt | 附加到默认系统提示 | 需要在保留核心能力的基础上添加特定指导 |
使用场景#
1. 添加项目特定规则#
保留 Claude 的核心能力,同时添加项目特定的约束:
bash复制claude --append-system-prompt "在这个项目中,所有 API 端点必须包含认证中间件,数据库操作必须使用事务,敏感数据必须加密存储。"
2. 指定输出格式#
要求 Claude 以特定格式输出,而不影响其核心推理能力:
bash复制claude --append-system-prompt "所有代码示例必须包含类型注解和文档字符串。输出格式必须使用 Markdown 代码块。"
3. 添加领域特定知识#
在 Claude 的通用知识基础上,添加特定领域的指导:
bash复制claude --append-system-prompt "你正在为医疗设备软件工作。所有代码必须遵循 IEC 62304 标准,并包含详细的单元测试。"
4. 设置语言偏好#
指定回答的语言或术语偏好:
bash复制claude --append-system-prompt "请使用简体中文回答所有问题。技术术语保留英文原文。"
5. 添加安全约束#
在保留 Claude 安全能力的基础上,添加额外的安全要求:
bash复制claude --append-system-prompt "对于任何涉及用户数据的操作,必须先进行数据脱敏处理。所有密码必须使用 bcrypt 哈希。"
高级用法#
1. 多行提示#
使用引号包裹多行提示:
bash复制claude --append-system-prompt " 在这个项目中: "
2. 与其他标志组合#
bash复制# 附加系统提示并设置模型claude --append-system-prompt "使用 TypeScript 严格模式" --model opus # 附加系统提示并限制工具claude --append-system-prompt "只使用 Read 和 Grep 工具" --allowedTools "Read""Grep" # 附加系统提示并指定输出格式claude --append-system-prompt "输出 JSON 格式" --output-format json
3. 管道输入配合使用#
bash复制# 附加系统提示并处理管道输入cat code.py | claude --append-system-prompt "使用 PEP 8 风格指南" -p "审查这段代码" # 附加系统提示并使用 SDK 查询claude --append-system-prompt "关注性能优化" -p "优化这个函数"
4. 环境变量#
bash复制# 设置环境变量exportAPPEND_PROMPT="使用公司内部代码规范" # 使用环境变量claude --append-system-prompt "$APPEND_PROMPT"
实际应用示例#
示例 1: Web 开发项目#
bash复制claude --append-system-prompt " 项目技术栈:React 18, TypeScript, Tailwind CSS 代码规范: - 使用函数组件和 Hooks - 所有组件必须有 PropTypes 或 TypeScript 类型 - 样式使用 Tailwind CSS 类名 - 状态管理使用 Redux Toolkit "
示例 2: 数据科学项目#
bash复制claude --append-system-prompt " 数据科学项目规范: - 使用 Python 3.9+ - 数据处理使用 Pandas - 可视化使用 Matplotlib 和 Seaborn - 机器学习使用 scikit-learn - 所有代码必须有类型注解 - Jupyter Notebook 必须转换为 Python 脚本 "
示例 3: DevOps 项目#
bash复制claude --append-system-prompt " DevOps 项目要求: - 所有基础设施即代码使用 Terraform - CI/CD 使用 GitHub Actions - 容器化使用 Docker - 编排使用 Kubernetes - 监控使用 Prometheus 和 Grafana - 日志使用 ELK Stack "
示例 4: 移动应用开发#
bash复制claude --append-system-prompt " 移动应用开发规范: - 使用 React Native - 状态管理使用 MobX - 导航使用 React Navigation - 网络请求使用 Axios - 本地存储使用 AsyncStorage - 所有组件必须有 TypeScript 类型 "
最佳实践#
1. 明确且简洁#
保持附加提示明确且简洁:
bash复制# 好的示例claude --append-system-prompt "所有函数必须有类型注解和文档字符串" # 不好的示例claude --append-system-prompt "请确保你编写的所有代码都包含适当的类型注解,并且每个函数都应该有详细的文档字符串来解释它的功能、参数和返回值"
2. 使用编号列表#
对于多个要求,使用编号列表:
bash复制claude --append-system-prompt "代码规范:\n1. 所有函数必须有类型注解\n2. 所有函数必须有文档字符串\n3. 所有类必须有文档字符串"
3. 提供示例#
在提示中包含示例:
bash复制claude --append-system-prompt " 函数格式示例: def calculate_total(items: List[Item]) -> float: \"\"\"计算商品总价\"\"\" return sum(item.price for item in items) "
4. 分离关注点#
将不同类型的关注点分开:
bash复制# 代码风格claude --append-system-prompt "使用 PEP 8 风格指南" # 安全要求claude --append-system-prompt "所有用户输入必须验证和清理" # 性能要求claude --append-system-prompt "优先考虑时间复杂度 O(n) 的算法"
常见问题#
Q1: 附加提示的长度有限制吗?#
A: 有一定的限制,但通常足够长。如果提示非常长,建议使用 --system-prompt-file 从文件加载。
Q2: 可以多次使用 --append-system-prompt 吗?#
A: 不可以。每次只能使用一次。如果需要添加多个内容,请将它们合并为一个提示。
Q3: 附加提示会影响 Claude 的核心能力吗?#
A: 不会。--append-system-prompt 只是在默认系统提示后添加内容,不会替换核心能力。
Q4: 何时使用 --append-system-prompt 而不是 --system-prompt?#
A: 当您希望保留 Claude 的核心行为和能力,只需要添加特定指导时使用 --append-system-prompt。当您需要完全自定义 Claude 的行为时使用 --system-prompt。
Q5: 附加提示的优先级如何?#
A: 附加提示会与默认系统提示一起工作。如果存在冲突,附加提示通常具有更高的优先级。
与其他标志的组合示例#
1. 完整的开发环境设置#
bash复制claude \--append-system-prompt "使用 TypeScript 严格模式,编写单元测试"\--model opus \--allowedTools "Read""Write""Grep""RunCommand"\--verbose
2. 代码审查会话#
bash复制claude \ --append-system-prompt "代码审查重点:安全性、性能、可维护性"\ --model opus \ --output-format json \ -p "审查 src/auth.py"
3. 文档生成#
bash复制claude \--append-system-prompt "生成符合 Google 风格的 API 文档"\--model opus \--output-format markdown \-p "为所有 API 端点生成文档"
4. 测试生成#
bash复制claude \ --append-system-prompt "使用 pytest 编写单元测试,覆盖率至少 80%"\ --model opus \ --allowedTools "Read""Write"\ -p "为 src/utils.py 生成测试" ## 提示模板 ### 代码风格模板 ```bash claude --append-system-prompt " 代码风格要求: - 使用 2 空格缩进 - 每行不超过 80 字符 - 使用驼峰命名法(变量和函数) - 使用帕斯卡命名法(类) - 常量使用全大写和下划线 "
安全模板#
bash复制claude --append-system-prompt " 安全要求: - 所有用户输入必须验证 - 敏感数据必须加密 - 使用参数化查询防止 SQL 注入 - 实施 CSRF 保护 - 设置适当的安全头 "
性能模板#
bash复制claude --append-system-prompt " 性能要求: - 优先考虑 O(n) 或更好的算法 - 避免不必要的数据库查询 - 使用缓存减少重复计算 - 异步处理耗时操作 - 优化数据库索引 "
文档模板#
bash复制claude --append-system-prompt " 文档要求: - 所有函数必须有文档字符串 - 复杂逻辑必须有注释 - API 端点必须有 OpenAPI 规范 - README 必须包含安装和使用说明 - 变更日志必须记录所有重要更改 "
总结#
--append-system-prompt 标志提供了一种灵活的方式来增强 Claude 的默认行为,而不需要完全替换其系统提示。这种方式特别适合:
- 添加项目特定的规则和约束
- 指定输出格式和风格
- 添加领域特定的知识
- 设置语言和术语偏好
- 添加额外的安全或性能要求
通过合理使用 --append-system-prompt,您可以在保留 Claude 核心能力的同时,定制其行为以适应您的具体需求。