Skip to content

6.7 --system-prompt-file - 從檔案載入系統提示

概述

--system-prompt-file 標誌允許您從檔案中載入自定義的系統提示,而不是直接在命令列中輸入。這對於複雜的系統提示、需要版本控制的提示,或者需要在不同專案間共享的提示特別有用。

基本语法

bash


claude --system-prompt-file <文件路径>

使用场景

1. 复杂系统提示

當您的系統提示非常長或包含多個部分時,使用檔案可以更好地組織內容:

    bash


    # 创建系统提示文件
    cat > python-expert.txt << 'EOF'
    你是一位资深的 Python 开发专家,具有以下专长:
    - Python 3.8+ 的所有新特性
    - 异步编程和并发
    - 数据科学和机器学习
    - Web 开发(Django, Flask, FastAPI)
    - 性能优化和调试

    在回答问题时,请:
    EOF

    # 使用文件加载系统提示
    claude --system-prompt-file python-expert.txt

### 2\. 项目特定的系统提示

為不同的專案建立專門的系統提示檔案:

bash
    bash


    # 项目 A 的系统提示
    cat > project-a-prompt.txt << 'EOF'
    你正在为 Project A 工作,这是一个金融科技应用。
    技术栈:Python 3.9, Django 4.0, PostgreSQL, Redis
    关键规则:
    - 所有金融计算必须使用 decimal.Decimal
    - 敏感数据必须加密存储
    - 所有 API 端点需要认证
    - 日志记录必须包含审计信息
    EOF

    # 项目 B 的系统提示
    cat > project-b-prompt.txt << 'EOF'
    你正在为 Project B 工作,这是一个电商平台。
    技术栈:Node.js 18, Express, MongoDB, Elasticsearch
    关键规则:
    - 使用 TypeScript 进行类型安全
    - 所有数据库操作使用事务
    - 实现缓存策略
    - 监控和追踪所有用户行为
    EOF

    # 根据项目使用不同的系统提示
    cd project-a
    claude --system-prompt-file project-a-prompt.txt
    cd project-b
    claude --system-prompt-file project-b-prompt.txt

### 3\. 版本控制系统提示

將系統提示檔案納入版本控制,便於團隊協作和歷史追溯:

    bash


    # 项目结构
    my-project/
    ├── prompts/
    │   ├── system-prompt-v1.txt
    │   ├── system-prompt-v2.txt
    │   └── system-prompt.txt -> system-prompt-v2.txt
    └── src/

    # 使用当前版本的系统提示
    claude --system-prompt-file prompts/system-prompt.txt

### 4\. 多语言系统提示

為不同語言建立專門的系統提示檔案:

bash
    bash


    # Python 专家提示
    cat > python-expert.txt << 'EOF'
    你是一位 Python 专家,精通:
    - Python 3.8+ 的所有特性
    - 常用框架:Django, Flask, FastAPI
    - 数据科学:NumPy, Pandas, Matplotlib
    - 机器学习:scikit-learn, TensorFlow, PyTorch
    EOF

    # JavaScript 专家提示
    cat > javascript-expert.txt << 'EOF'
    你是一位 JavaScript 专家,精通:
    - ES6+ 的所有特性
    - 前端框架:React, Vue, Angular
    - 后端:Node.js, Express, NestJS
    - 工具链:Webpack, Vite, ESLint
    EOF

    # 根据需要选择
    claude --system-prompt-file python-expert.txt
    claude --system-prompt-file javascript-expert.txt

## 高级用法

### 1\. 与其他标志组合使用

    bash


    # 使用文件加载系统提示,并设置模型
    claude --system-prompt-file security-reviewer.txt --model opus

    # 使用文件加载系统提示,并限制工具
    claude --system-prompt-file code-analyzer.txt --allowedTools "Read" "Grep"

    # 使用文件加载系统提示,并指定输出格式
    claude --system-prompt-file api-docs.txt --output-format json

### 2\. 管道输入配合使用

    bash


    # 从文件加载系统提示,并处理管道输入
    cat code.py | claude --system-prompt-file code-reviewer.txt -p "审查这段代码"

    # 从文件加载系统提示,并使用 SDK 查询
    claude --system-prompt-file data-scientist.txt -p "分析这个数据集"

### 3\. 环境变量指定文件路径

    bash


    # 设置环境变量
    export SYSTEM_PROMPT_FILE=~/.claude/prompts/default-prompt.txt

    # 使用环境变量
    claude --system-prompt-file "$SYSTEM_PROMPT_FILE"

### 4\. 动态生成系统提示文件

    bash


    # 根据当前目录动态生成系统提示
    cat > dynamic-prompt.txt << EOF
    你正在 $(basename $(pwd)) 项目中工作。
    项目信息:
    $(cat README.md 2>/dev/null | head -20)
    技术栈:
    $(cat package.json 2>/dev/null | grep -A 20 "dependencies" || cat requirements.txt 2>/dev/null || echo "未检测到依赖文件")
    EOF

    # 使用动态生成的系统提示
    claude --system-prompt-file dynamic-prompt.txt

## 文件格式建议

### 1\. 结构化提示

    text


    # 角色定义
    你是一位 [角色名称]

    # 专业领域
    - 领域 1
    - 领域 2
    - 领域 3

    # 工作原则

    # 输出要求
    - 要求 1
    - 要求 2
    - 要求 3

    # 禁止事项
    - 禁止 1
    - 禁止 2

    ### 2. 包含示例的提示

    你是一位代码审查专家。
    审查标准:

    输出格式:

    ## 审查结果
    ### 优点
    - 优点 1
    - 优点 2
    ### 问题
    - 问题 1
    - 问题 2
    ### 建议
    - 建议 1
    - 建议 2
    示例:
    [提供 1-2 个具体的审查示例]

## 最佳实践

### 1\. 文件组织

# 推荐的目录结构

    text


    ~/.claude/
    ├── prompts/
    │   ├── general/
    │   │   ├── code-assistant.txt
    │   │   ├── code-reviewer.txt
    │   │   └── debugger.txt
    │   ├── languages/
    │   │   ├── python-expert.txt
    │   │   ├── javascript-expert.txt
    │   │   └── go-expert.txt
    │   └── domains/
    │       ├── web-dev.txt
    │       ├── data-science.txt
    │       └── devops.txt

### 2\. 文件命名约定
  • 使用描述性名稱:python-expert.txt 而不是 prompt1.txt
  • 包含版本資訊:code-reviewer-v2.txt
  • 使用小寫和連字元:security-auditor.txt 而不是 SecurityAuditor.txt

3. 文件化提示

在每個提示檔案的開頭新增註釋:

bash
    text


    # 系统提示:Python 专家
    # 版本:1.2
    # 创建日期:2024-01-15
    # 最后更新:2024-02-20
    # 作者:团队 A
    # 用途:为 Python 开发提供专家级建议

    你是一位资深的 Python 开发专家...

### 4\. 版本控制

    bash


    # 使用 Git 管理提示文件
    cd ~/.claude/prompts
    git init
    git add .
    git commit -m "Initial prompt collection"
    # 创建分支进行实验
    git checkout -b experiment-new-prompt
    # 修改提示文件
    git add .
    git commit -m "Try new prompt structure"

## 常见问题

### Q1: 系统提示文件支持哪些格式?

A: 支持纯文本格式(.txt, .md)。建议使用 .txt .md 格式,便于编辑和版本控制。

### Q2: 文件路径可以是相对路径吗?

A: 可以。支持相对路径和绝对路径。相对路径是相对于当前工作目录。

### Q3: 文件不存在会发生什么?

A: Claude 会报错并提示文件不存在。请确保文件路径正确。

### Q4: 可以使用环境变量吗?

A: 可以。在命令行中使用环境变量:`claude --system-prompt-file "$MY_PROMPT_FILE"`

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

A: `--system-prompt` 直接在命令行中指定提示,适合简单的提示;`--system-prompt-file` 从文件加载,适合复杂、需要版本控制或共享的提示。

## 示例:完整的提示文件

    text


    # 系统提示:全栈开发专家
    # 版本:2.0
    # 最后更新:2024-02-20

    你是一位全栈开发专家,具有以下专长:

    ## 前端开发
    - React, Vue, Angular
    - TypeScript, JavaScript
    - CSS, Sass, Tailwind CSS
    - Webpack, Vite
    - 测试:Jest, Cypress

    ## 后端开发
    - Node.js, Python, Go
    - RESTful API, GraphQL
    - 数据库:PostgreSQL, MongoDB, Redis
    - 认证与授权
    - 微服务架构

    ## DevOps
    - Docker, Kubernetes
    - CI/CD:GitHub Actions, GitLab CI
    - 云平台:AWS, GCP, Azure
    - 监控:Prometheus, Grafana

    ## 工作原则

    1. **代码质量优先**
       - 遵循 SOLID 原则
       - 编写可测试的代码
       - 注重性能和安全性

    2. **最佳实践**
       - 使用设计模式
       - 编写清晰的文档
       - 实施代码审查

    3. **团队协作**
       - 遵循项目规范
       - 提供详细的代码注释
       - 分享知识和经验

    ## 输出要求

    - 提供完整的代码示例
    - 解释关键概念和原理
    - 指出潜在的问题和风险
    - 建议相关的工具和资源
    - 考虑可维护性和可扩展性

    ## 禁止事项

    - 不要提供不安全的代码
    - 不要忽略性能问题
    - 不要跳过错误处理
    - 不要使用过时的技术

## 总结

--system-prompt-file 標誌提供了一種靈活、可維護的方式來管理複雜的系統提示。透過使用檔案,您可以:

  • 更好地組織和版本控制提示
  • 在不同專案和團隊間共享提示
  • 建立特定領域的專家提示
  • 動態生成和調整提示

建議為常用的場景建立專門的提示檔案,並將其納入版本控制系統,以提高工作效率和團隊協作效果。

基于 MIT 许可发布 | 永久导航