所有節目›AI Engineer Europe 2026World's Fair 2026World's Fair 線上軌AI in HealthcareSoftware Factories
Skill Issue: How We Used AI to Make Agents Actually Good at Supabase在 YouTube 看這一場

AI Engineer Europe 2026 · 工作坊 · 2026-05-04 · 79 分

替 agent 寫 skill 再用評估驗證

Skill Issue: How We Used AI to Make Agents Actually Good at Supabase · Pedro Rodrigues,Supabase

Pedro Rodrigues 以 Supabase 的資料庫安全問題為例,帶著大家手動寫一份 skill、看 agent 行為怎麼改變,最後用有無 skill 的對照評估自動重跑,也談上線維護。

skill 份量看原片 ↗

概要

  • Skill 不只是一份 SKILL.mdPedro 說 skill 是放指令、參考檔與腳本的資料夾,SKILL.md 先只載入 description,其餘內容等 agent 需要再讀,也就是 progressive disclosure。
  • Skill 與 MCP 互補做整合、或 agent 沒有 bash 時用 MCP;工作流程和工具描述放不下的背景放在 skill。Pedro 建議用 MCP 工具取資料、用 skill 說明怎麼用。
  • 示範的坑是 view 繞過 RLS沒有 skill 時,Claude 建的 view 回報成功,但經理能看到別部門的資料;原因是 Postgres 的 view 預設繞過 row level security,要加 security invoker 旗標。
  • 載入 skill 後行為確實改變Pedro 的 skill 把這類安全重點寫進去,重跑同一個 prompt 時 agent 就在 view 加上了該旗標。至於怎麼讓 skill 容易被載入,建議 description 用 use 開頭,或在 prompt 直接點名 skill。
  • 評估是第一條自動化管線Pedro 照 Agent Skills 開放標準的 eval.json 結構,用有無 skill 兩種條件跑 Claude Code,再比較結果;示範中斷言寫錯導致結果顛倒,說明 eval 本身也要小心設計。
  • 上線後把 skill 當文件維護Q&A 中 Pedro 建議把更新流程寫進 CLAUDE.md 或 AGENTS.md,並定期檢查 skill 還有沒有人載入。

原話

  • “six months ago, and now it's fairly it's fair to say that it's one of the north stars of agent development”

    六個月前沒人在談 progressive disclosure,現在可以說是 agent 開發的指北星之一

    ▶ 47:14
  • “you can think of the skill that mds as a prompt template to your agent”

    可以把 SKILL.md 當成給 agent 的 prompt 模板

    ▶ 52:29
  • “It's the tool to enable this connection, this integration, and the skill to describe how to use it.”

    工具負責建立連接與整合,skill 負責說明怎麼用

    ▶ 59:53
  • “As like normal tests, the results will depend on how you implement them, right? It's just code.”

    跟一般測試一樣,結果取決於你怎麼實作,畢竟那只是程式碼

    ▶ 1:11:06
  • “treat skills that you put into production as actual document as you would read documentation”

    把上線的 skill 當成真正的文件來對待

    ▶ 1:16:34

延伸

  • Pedro 提醒 skill 跟 MCP 一樣還在很早期:progressive disclosure 半年前沒人在談、現在成了 agent 開發的指北星,再過半年可能又換成別的東西。
  • 評估驅動開發的流程,Pedro 引的是 OpenAI 今年一、二月的部落格文章〈systematically evaluate agent skills〉。

章節

點時碼直接跳到原片的那一段。

  1. 改名與 Pedro 自介工作坊從原訂的 Skill Issue 改名為 level up your skills;Pedro 在 Supabase 擔任 AI tooling engineer,工作是讓 Supabase 對 agent 更友善。
  2. Skill 的結構skill 是放指令與檔案的資料夾,必填的只有 SKILL.md 的 name 與 description;Pedro 用「書的目錄與章節」比喻 progressive disclosure。
  3. Skills 與 MCP 的分工Pedro 認為兩者是蘋果比橘子:做整合就用 MCP,沒有 bash 也只能用 MCP;skill 補的是工具描述放不下的工作流程與背景。
  4. 怎麼測一份 markdown測 skill 就是測 LLM 在迴圈裡的行為,也就是 evals;比起比對最終輸出,評估 agent 走了哪些步驟、呼叫哪些工具更實用。
  5. 評估驅動的開發循環Pedro 介紹 OpenAI 部落格提出的流程:先定義指標、寫 skill、跑評估、評分,再回頭迭代;並提到 Braintrust 這類平台。
  6. 示範專案與 Supabase 簡介示範用一個績效考核的 Next.js 應用,目標是先手動修資料庫端的問題,最後再用 evals 自動重跑;也簡介 Supabase 是 Postgres 為底的 backend as a service。
  7. Repo 與示範應用Pedro 帶大家看 GitHub repo 與 demo 應用,任務是新增一個顯示各部門薪資與平均評分的 reports 頁。
  8. 沒有 skill:agent 建 view接上本地版 Supabase MCP server,Claude 列出資料表、套用 migration 建出 department stats view,並回報一切正常。
  9. 驗收:經理看得到別部門用 HR 帳號看報表沒問題,換成經理 Bob 卻看得到其他部門的資訊,Pedro 認為這是 agent 沒說出口的漏洞。
  10. 原因:view 繞過 RLS資料表開了 row level security,但 Postgres 的 view 預設用建立者的權限,會繞過 RLS;要加 security invoker 旗標才會套用。
  11. 寫 supabase-security skillPedro 寫了涵蓋三個安全重點的 skill,description 以動詞 use 開頭,據自己的實驗這樣更容易被載入;內容也包含 public schema 要開 RLS 的檢查項。
  12. 用 skills 套件安裝用 Vercel 的 skills npm 套件把 skill 裝進專案,放在 .agents 並以 symlink 連到 .claude/skills,Pedro 說這樣兩邊的 agent 都找得到。
  13. 怎麼讓 skill 被載入只靠 description 要碰運氣;在 prompt 寫 use 加上 skill 名稱幾乎都會載入,Claude Code 的 slash 指令則保證載入。
  14. 提問:skill 該怎麼自動觸發有聽眾問 skill 由 agent 決定要不要載入的問題;Pedro 建議自己設計該載入與不該載入的情境,反覆調 description,並說這個領域仍在標準化。
  15. 有 skill 後的結果重置資料庫再跑同一個 prompt,這次 agent 載入 skill 並在 view 加上 security invoker,行為確實改變,但後續排錯沒有完全成功。
  16. Context 占用與 tool searchPedro 對比載入 skill 前後的 context,並說明 Claude Code 的 tool search tool 是替 MCP 工具做的 progressive disclosure,不像 skill 是內建設計。
  17. 提問:大型 schema 的逐步載入有聽眾問怎麼讓 agent 逐步載入大資料庫的 schema;Pedro 建議取資料用 MCP 工具,使用方式寫在 skill 裡,兩者搭配而不是對立。
  18. 為什麼要自動化測試在自己機器上能跑不代表換環境也行;要能在改 skill 後確認既有流程沒壞,就要評估,而最難的是想出有代表性的情境。
  19. eval.json 與 LLM 評審Pedro 照 Agent Skills 開放標準的結構,用 eval.json 放 prompt、預期輸出與斷言,可用工具呼叫檢查或讓另一個 LLM 當評審評分。
  20. 有無 skill 兩種條件跑 eval用 Python 腳本重置資料庫,以 headless 的 Claude Code 分別跑有 skill 與沒有 skill 兩種條件,有 skill 那組把 SKILL.md 附加到 system prompt。
  21. Eval 自己寫錯的示範結果顯示有 skill 那組失敗、沒有的反而通過,原因是斷言檢查的位置寫錯;Pedro 藉此說明 eval 跟一般測試一樣會因為寫法而出錯,LLM 評審還可能幻覺。
  22. 總結:第一條評估管線兩種條件、同一個 harness、比較結果,就是最簡單的起點;之後可以改到 Docker 或 sandbox 取得乾淨環境。
  23. Q&A:skill 數量與上線維護有聽眾問 skill 能裝多少;Pedro 說本機不必太擔心,上線則把 skill 當文件維護,在 CLAUDE.md 或 AGENTS.md 寫更新流程,並定期檢查有沒有被用到。

名詞

Supabase
Pedro 任職的公司,以 Postgres 為底的 backend as a service,提供資料庫、驗證、儲存與 edge functions
Pedro Rodrigues
Supabase 的 AI tooling engineer,過去兩個月在替 Supabase 寫自家的 skill
SKILL.md
skill 的主檔,frontmatter 必填 name 與 description
progressive disclosure
不一次把資訊全塞進 context,只載入足以讓 agent 判斷是否要再讀的內容
RLS(row level security)
在資料庫層限制誰能看到哪些資料列,不必靠應用程式過濾
security invoker
讓 Postgres view 套用 RLS 政策的旗標,沒加時 view 會繞過 RLS
skills(npm 套件)
Vercel 出的套件,可把 skill 裝進專案並連結到不同 agent 的資料夾
Agent Skills 開放標準
Pedro 採用其 eval.json 結構來設計測試案例的標準網站
LLM as a judge
把執行結果交給另一個 LLM,依成功標準評分
Braintrust
Pedro 提到的評估平台,可系統化跑 evals 並觀察 agent 行為
database advisors
Supabase 提供的檢查工具,用來提早發現暴露的 schema 與潛在漏洞
tool search tool
Claude Code 依需求載入 MCP 工具的機制,Pedro 視為 MCP 版的 progressive disclosure

相關影片 同屬「skill 份量」