在LLM(大型語言模型)的提示工程中,使用類似XML的結構化格式往往能提高模型輸出的質量。
主要原因如下:
基於這些理由,模型能夠更順利地進行處理。
此外,XML格式也有助於控制輸出格式,因此更容易指定模型以特定的結構進行回應。
<SystemContent>
- 僅在 <AssistantResponse> 內輸出
- 優先使用條列式,標題最高至 h2
</SystemContent>
<UserInput>
<task>總結 RAG 的評估指標</task>
<context doc_id="d1" title="RAG Metrics 101">…正文…</context>
<context doc_id="d2" title="Pitfalls">…正文…</context>
</UserInput>
<Constraints>
- 重要點列出 3〜5 個
- 參考需明確標示 doc_id
</Constraints>
<AssistantResponse></AssistantResponse>
<Info>
、<Information>
、<Data>
等模糊)System
與User
同存)<SystemContent>
- 直到用戶明示改善指示之前不提議或改善
- 回答以Markdown簡潔輸出
</SystemContent>
<UserContent>
請解釋 {{topic}}
</UserContent>
<Constraints>
- 最大標題層級: h3
- 優先條列式,禁止冗贅前置
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{topic}}</Variables>
<SystemContent>
- 僅返回JSON。不接受前後說明文字或代碼框
</SystemContent>
<UserContent>
請以JSON定義 {{domain}} 的設置值
</UserContent>
<Constraints>
- 根為對象
- 必要鍵: name, version, options
</Constraints>
<OutputFormat>JSON</OutputFormat>
<Language>ja</Language>
<Variables>{{domain}}</Variables>
<SystemContent>
- 僅以表格比較要點
</SystemContent>
<UserContent>
請比較 {{targets}} 在 {{criteria}} 的觀點
</UserContent>
<Constraints>
- 列: 項目 | 概要 | 優點 | 缺點 | 適用情況
- 行為 {{n}} 件
</Constraints>
<OutputFormat>MarkdownTable</OutputFormat>
<Language>ja</Language>
<Variables>{{targets}}, {{criteria}}, {{n}}</Variables>
<SystemContent>
- 先列舉最短步驟,接著給出最小代碼
</SystemContent>
<UserContent>
請以最短步驟和最小代碼展示 {{task}} 於 {{language}} 中
</UserContent>
<Constraints>
- 步驟應為3至5行
- 代碼需最小依賴,且附有執行例
</Constraints>
<OutputFormat>Markdown (Steps + Code)</OutputFormat>
<Language>ja</Language>
<Variables>{{task}}, {{language}}</Variables>
<SystemContent>
- 批評輸出物並給予數值評價
</SystemContent>
<UserContent>
請評估以下產出物:
{{artifact}}
</UserContent>
<EvaluationCriteria>
- 正確性(40) 可讀性(20) 效率(20) 重新利用性(20)
</EvaluationCriteria>
<OutputFormat>
- 總評
- 改善建議(3點)
- 各項目得分/100
</OutputFormat>
<Language>ja</Language>
<Variables>{{artifact}}</Variables>
<SystemContent>
- 依序生成正常情況/異常情況/邊界值的測試
</SystemContent>
<UserContent>
目標規範: {{spec}}
</UserContent>
<Constraints>
- 每個案例: 輸入、步驟、期待結果
- 數量: 正常{{n1}} / 異常{{n2}} / 邊界{{n3}}
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{spec}}, {{n1}}, {{n2}}, {{n3}}</Variables>
<SystemContent>
- 假設使用綁定變量以防止SQL注入
</SystemContent>
<UserContent>
請為 {{rdbms}} 創建 {{purpose}} 的查詢
</UserContent>
<Constraints>
- 使用佔位符
- 考量索引的WHERE設計
</Constraints>
<OutputFormat>SQL + 解說</OutputFormat>
<Language>ja</Language>
<Variables>{{rdbms}}, {{purpose}}</Variables>
<SystemContent>
- 明確搜尋意圖→設計標題
</SystemContent>
<UserContent>
請製作主題「{{keyword}}」的SEO文章構成
</UserContent>
<Constraints>
- 預期讀者/搜尋意圖/共起詞(5〜10)/標題h2-h3
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{keyword}}</Variables>
<SystemContent>
- 提供最小屬性與Meta
</SystemContent>
<UserContent>
請生成 {{app}} 的 {{entity}} 模型雛形
</UserContent>
<Constraints>
- id, created_at, updated_at
- 實作 __str__
</Constraints>
<OutputFormat>Python(DjangoModel)</OutputFormat>
<Language>ja</Language>
<Variables>{{app}}, {{entity}}</Variables>
<SystemContent>
- 可以放入 functions.php 的最小片段
</SystemContent>
<UserContent>
請實作 {{feature}} 的WP代碼
</UserContent>
<Constraints>
- 明示操作/過濾器
- 安全的數據過濾
</Constraints>
<OutputFormat>PHP + 說明</OutputFormat>
<Language>ja</Language>
<Variables>{{feature}}</Variables>
<SystemContent>
- 以「計畫→確認→執行」為三個階段展示
</SystemContent>
<UserContent>
請安全地執行 {{operation}} 的bash步驟
</UserContent>
<Constraints>
- set -euo pipefail
- 破壞性操作需加上 --dry-run
</Constraints>
<OutputFormat>Markdown + Shell</OutputFormat>
<Language>ja</Language>
<Variables>{{operation}}</Variables>
<SystemContent>
- 在 Ingest→Transform→Store→Serve 的流程中摘要
</SystemContent>
<UserContent>
數據從 {{source}} 連接到 {{sink}}
</UserContent>
<Constraints>
- 模式/延遲/故障時重發/監控
</Constraints>
<OutputFormat>Markdown (圖可以使用Mermaid)”</OutputFormat>
<Language>ja</Language>
<Variables>{{source}}, {{sink}}</Variables>
<SystemContent>
- 依據影響度×工時的優先順序排列
</SystemContent>
<UserContent>
我想改善 {{target}} 的性能
</UserContent>
<Constraints>
- 低工時高影響的排在上面
- 每個項目註明預估效果/工時
</Constraints>
<OutputFormat>Markdown列表</OutputFormat>
<Language>ja</Language>
<Variables>{{target}}</Variables>
<SystemContent>
- 假設→確認項目→重現步驟→暫時解決
</SystemContent>
<UserContent>
日誌:
{{logs}}
</UserContent>
<Constraints>
- 假設不超過3條
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{logs}}</Variables>
<SystemContent>
- 優先考慮行為不變
</SystemContent>
<UserContent>
對 {{codebase}} 進行逐步重構
</UserContent>
<Constraints>
- 每個步驟均需說明風險/測試觀點/回滾
</Constraints>
<OutputFormat>計畫書Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{codebase}}</Variables>
<SystemContent>
- 準用OWASP ASVS輕量版進行掃描
</SystemContent>
<UserContent>
目標: {{system}}
</UserContent>
<Constraints>
- 認證/授權/輸入/秘密信息/日誌/依賴
</Constraints>
<OutputFormat>檢查清單(✓/✗) + 改善建議</OutputFormat>
<Language>ja</Language>
<Variables>{{system}}</Variables>
<SystemContent>
- 假設遵循OpenAPI標準
</SystemContent>
<UserContent>
規範:
{{openapi}}
</UserContent>
<Constraints>
- {{language}} 的API客戶端最小實作
- 設定重試和超時
</Constraints>
<OutputFormat>代碼 + 使用方法</OutputFormat>
<Language>ja</Language>
<Variables>{{openapi}}, {{language}}</Variables>
<SystemContent>
- 後向兼容→遷移→切換→清理
</SystemContent>
<UserContent>
數據庫變更: {{change}}
</UserContent>
<Constraints>
- 記載回滾步驟
- 最小化停機時間
</Constraints>
<OutputFormat>步驟書Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{change}}</Variables>
<SystemContent>
- 構成為 Arrange→Act→Assert
</SystemContent>
<UserContent>
目標代碼:
{{code}}
</UserContent>
<Constraints>
- 使用 {{framework}}
- 列舉覆蓋要點
</Constraints>
<OutputFormat>測試代碼 + 說明</OutputFormat>
<Language>ja</Language>
<Variables>{{code}}, {{framework}}</Variables>
<SystemContent>
- 圖→要點3行→風險1行
</SystemContent>
<UserContent>
請羅列 {{architecture}} 的構成
</UserContent>
<Constraints>
- Mermaid的流程圖或序列圖
</Constraints>
<OutputFormat>Mermaid + 要點</OutputFormat>
<Language>ja</Language>
<Variables>{{architecture}}</Variables>
<SystemContent>
- 具體化/遵守審查政策/考量權利
</SystemContent>
<UserContent>
主題: {{theme}}。風格: {{style}}
</UserContent>
<Constraints>
- 明示主題/構圖/光源/顏色/質感/解析度
</Constraints>
<OutputFormat>圖像生成提示(條列式)</OutputFormat>
<Language>ja</Language>
<Variables>{{theme}}, {{style}}</Variables>
<SystemContent>
- 確保原意,專業術語優先於術語庫
</SystemContent>
<UserContent>
翻譯對象:
{{text}}
</UserContent>
<Constraints>
- 輸出語調: {{tone}}
- 注意誤譯點: {{notes}}
</Constraints>
<OutputFormat>對照(原文→譯文)</OutputFormat>
<Language>ja</Language>
<Variables>{{text}}, {{tone}}, {{notes}}</Variables>
<SystemContent>
- 最小化信息損失的抽取/摘要混合
</SystemContent>
<UserContent>
摘要對象:
{{content}}
</UserContent>
<Constraints>
- 字數限制在 ~{{chars}} 字
- 優先標題/條列式
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{content}}, {{chars}}</Variables>
<SystemContent>
- 建議第一名為先頭
</SystemContent>
<UserContent>
請從 {{candidates}} 選擇最佳方案(用途: {{usecase}})
</UserContent>
<Constraints>
- 選擇標準(3點)
- 權衡利弊
</Constraints>
<OutputFormat>排名/理由/注意事項</OutputFormat>
<Language>ja</Language>
<Variables>{{candidates}}, {{usecase}}</Variables>
<SystemContent>
- 按照難度層次逐步解說同一主題
</SystemContent>
<UserContent>
請分級告訴我 {{topic}}
</UserContent>
<Constraints>
- 初學者: 舉例
- 中級: 內部機制
- 進階: 最佳化/陷阱
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{topic}}</Variables>
<SystemContent>
- 最小化誤檢出/漏檢
</SystemContent>
<UserContent>
請提取對象: {{pattern_desc}}
</UserContent>
<Constraints>
- 正規表達式
- 測試字串(符合/不符合)
</Constraints>
<OutputFormat>正則表達式 + 測試案例</OutputFormat>
<Language>ja</Language>
<Variables>{{pattern_desc}}</Variables>
<SystemContent>
- 輸入/狀態/時間/地區/資源限制
</SystemContent>
<UserContent>
目標功能: {{feature}}
</UserContent>
<Constraints>
- 需要10條以上,並附上分類標籤
</Constraints>
<OutputFormat>檢查清單</OutputFormat>
<Language>ja</Language>
<Variables>{{feature}}</Variables>
<SystemContent>
- 以單頁面即可共享的密度
</SystemContent>
<UserContent>
請將 {{feature}} 的規格整理至一頁
</UserContent>
<Constraints>
- 目的/非目的/要件/非功能/UI/成功條件
</Constraints>
<OutputFormat>Markdown</OutputFormat>
<Language>ja</Language>
<Variables>{{feature}}</Variables>
<SystemContent>
- 決策事項/未決項/行動/負責人/期限
</SystemContent>
<UserContent>
會議紀錄:
{{minutes}}
</UserContent>
<Constraints>
- 依重要度排序
</Constraints>
<OutputFormat>Markdown (分段式)</OutputFormat>
<Language>ja</Language>
<Variables>{{minutes}}</Variables>
<SystemContent>
- 為了客觀評分輸出構建標準
</SystemContent>
<UserContent>
評估對象任務: {{task}}
</UserContent>
<EvaluationCriteria>
- 正確性/完整性/簡潔性/結構化/遵守輸出格式
- 每項0到5分,權重: {{weights}}
</EvaluationCriteria>
<Constraints>
- 為每項標準撰寫判斷指南(好/可/不可)
</Constraints>
<OutputFormat>評分表 + 評論雛形</OutputFormat>
<Language>ja</Language>
<Variables>{{task}}, {{weights}}</Variables>
原文出處:https://qiita.com/keiichileograph/items/4fcadeebd27410078828