# ADR-019: System Prompt 集中管理 | 屬性 | 值 | |------|-----| | **狀態** | Accepted | | **建立日期** | 2026-03-26 | | **決策者** | 首席架構師 | | **關聯** | Phase 17 P2 改進 | ## 背景 System Prompt 分散在多個檔案中: - `src/services/openclaw.py` - 生產環境 Prompt (約 125 行) - `tests/test_prompt_validation.py` - 測試用 Prompt (約 15 行) 問題: 1. **違反 DRY 原則** - 相同內容重複定義 2. **維護困難** - 修改需同步多處 3. **版本不一致風險** - 容易遺漏同步 ## 決策 建立 `src/core/prompts.py` 集中管理所有 System Prompt。 ### 結構 ```python # src/core/prompts.py # 生產環境完整 Prompt OPENCLAW_SYSTEM_PROMPT = """...""" # 測試用精簡 Prompt OPENCLAW_TEST_PROMPT = """...""" # 版本資訊 PROMPT_VERSION = "7.1" PROMPT_UPDATED = "2026-03-26" ``` ### 使用方式 ```python # 生產環境 from src.core.prompts import OPENCLAW_SYSTEM_PROMPT # 測試 from src.core.prompts import OPENCLAW_TEST_PROMPT ``` ## 影響檔案 | 檔案 | 變更 | |------|------| | `src/core/prompts.py` | 新增 | | `src/services/openclaw.py` | 改為 import | | `tests/test_prompt_validation.py` | 改為 import | ## 優點 1. **單一來源** - 所有 Prompt 集中管理 2. **版本追蹤** - 明確的版本號和更新日期 3. **易於測試** - 可獨立測試 Prompt 內容 4. **可擴展** - 未來可加入更多 Prompt 變體 ## 替代方案 | 方案 | 優點 | 缺點 | 決定 | |------|------|------|------| | **維持現狀** | 無需改動 | DRY 違規 | ❌ | | **外部檔案 (YAML/JSON)** | 非開發者可編輯 | 增加複雜度 | ❌ | | **集中式 Python 模組** | 類型安全,IDE 支援 | - | ✅ | ## 實作完成 - [x] 建立 `src/core/prompts.py` - [x] 更新 `openclaw.py` import - [x] 更新 `test_prompt_validation.py` import - [x] 驗證 import 正確