AI 很愛用 Python 解決問題,常常一言不合就開始寫 Python 程式、裝套件、跑腳本。我個人偏愛用 uv 光速下載安裝套件及節省空間,也習慣要開 venv 虛擬環境避免版本打架。但 AI 模型預設會用傳統 python、pip,起手式往往還要檢查 Python 版本安裝位置等,很沒效率。

鄉愿了很久,每次都是遇到了才緊急暫停補說明,今天決心動手根本解決這個問題。其實超簡單,加段 Instruction 就好。

在 VS Code 的設定方法:

  1. 按 Ctrl + Shift + P
  2. 執行 Chat: New Instructions File
  3. 選擇儲存位置 (User Data 適用 VSCode Chat 可跨機同步、~/.copilot/instructions 適用 Copilot agents,也包括 Copilot CLI,VSCode Chat)
  4. 將以下內容存檔為 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

補充說明:

  1. applyTo: "**" 指定常駐載入,Python 指令常在還沒有任何 .py 檔時就被執行(例如 Agent 思考過程)。用 *.py 比對或靠 description 判斷很可能漏載。此段內容只有約 100 token,用 100 token 換取穩定可靠划算。 註:寫成 Skill?User 層級不支援放 Skill,Skill 靠模型判斷是否載入,強制性弱,命中後需多一次載入動作,內容不長反而是浪費
  2. 正面指令 + 負面指令:告訴模型用 uv run、uv add、uvx,不要用 python、pip、virtualenv、poetry。模型的預設習慣是 pip install,只寫正面規則可能壓不過去。
  3. 一行一個決策:每行對應模型會遇到的一種情境,依序為執行、管理依賴、環境、禁用清單、失敗處理。模型容易對照,也省 token。
  4. venv 交由 uv 自己管理,要求模型不要手動介入,故明確禁止。 註:專案模式下,uv run、uv sync、uv add 等指令會自動處理 venv、若為 uv run script.py 等一次性臨時腳本,會使用 uv 管理的暫時環境,同樣不需要手動建立 venv。
  5. uv 不存在時,模型最常見的行為是自行改用 pip。要求先詢問,避免環境被弄亂。
  6. 只寫模型不會自己知道的:pytest、--dev 等通用知識不用寫,把 token 留給「偏好」和「禁令」。
  7. Instruction 屬引導無絕對強制性。若要全面禁用則可考慮改用 Hooks,例如 PreToolUse 偵測並阻擋 pip install。

【後記】Python 菜鳥如我,能寫出如此專業的 uv 提示全靠 AI,花少少錢就能請到世界頂尖水準的 Python 專家出主意給建議當私人教練,這是熱愛學習者的黃金年代無誤!! (如果你還沒放棄學習的話 XD)

AI assistants default to bare Python and pip, wasting time on setup checks. This post shows how to add a short, always-loaded VS Code user-level instruction file that makes AI use uv consistently, with design notes on why it works.


Comments

Be the first to post a comment

Post a comment