為 Github Copilot 加上 uv 偏好規則
| | | 0 | |
AI 很愛用 Python 解決問題,常常一言不合就開始寫 Python 程式、裝套件、跑腳本。我個人偏愛用 uv 光速下載安裝套件及節省空間,也習慣要開 venv 虛擬環境避免版本打架。但 AI 模型預設會用傳統 python、pip,起手式往往還要檢查 Python 版本安裝位置等,很沒效率。
鄉愿了很久,每次都是遇到了才緊急暫停補說明,今天決心動手根本解決這個問題。其實超簡單,加段 Instruction 就好。
在 VS Code 的設定方法:
- 按 Ctrl + Shift + P
- 執行 Chat: New Instructions File
- 選擇使用者層級的儲存位置 (User Data)
- 將以下內容存檔為 python-uv.instructions.md
---
description: Python tooling rules. Always use uv.
applyTo: "**"
---
Python: always use uv.
- Run: `uv run <script|cmd>` (ad-hoc deps: `uv run --with <pkg>`; outside a project: `--no-project`)
- Deps: `uv add` / `uv remove` / `uv sync`; CLI tools: `uvx`
- uv manages `.venv` automatically: no `uv venv`, `python -m venv`, or activate
- Never use bare `python`, `pip`, `virtualenv`, `poetry`
- If uv is missing, ask before installing or falling back

補充說明:
- applyTo: "**" 指定常駐載入,Python 指令常在還沒有任何 .py 檔時就被執行(例如 Agent 思考過程)。用 *.py 比對或靠 description 判斷很可能漏載。此段內容只有約 100 token,用 100 token 換取穩定可靠划算。 註:寫成 Skill?User 層級不支援放 Skill,Skill 靠模型判斷是否載入,強制性弱,命中後需多一次載入動作,內容不長反而是浪費
- 正面指令 + 負面指令:告訴模型用 uv run、uv add、uvx,不要用 python、pip、virtualenv、poetry。模型的預設習慣是 pip install,只寫正面規則可能壓不過去。
- 一行一個決策:每行對應模型會遇到的一種情境,依序為執行、管理依賴、環境、禁用清單、失敗處理。模型容易對照,也省 token。
- venv 交由 uv 自己管理,要求模型不要手動介入,故明確禁止。 註:專案模式下,uv run、uv sync、uv add 等指令會自動處理 venv、若為
uv run script.py等一次性臨時腳本,會使用 uv 管理的暫時環境,同樣不需要手動建立 venv。 - uv 不存在時,模型最常見的行為是自行改用 pip。要求先詢問,避免環境被弄亂。
- 只寫模型不會自己知道的:pytest、--dev 等通用知識不用寫,把 token 留給「偏好」和「禁令」。
- Instruction 屬引導無絕對強制性。若要全面禁用則可考慮改用 Hooks,例如 PreToolUse 偵測並阻擋 pip install。
【後記】Python 菜鳥如我,能寫出如此專業的 uv 提示全靠 AI,花少少錢就能請到世界頂尖水準的 Python 專家出主意給建議當私人教練,這是熱愛學習者的黃金年代無誤!! (如果你還沒放棄學習的話 XD)
Comments
Be the first to post a comment