HasSkills 契約、Cohere 文字生成、內建工具可要求人工核准,以及 failover 時自動跳過不支援的 provider tools——給台灣工作室與企業後端的實務解讀。
想像你請一位新進客服第一天上班,卻把退貨政策、品牌語氣、促銷規則、例外案例全部印成兩百頁,塞進他的抽屜,還要求他每次回話前都先背完。這不是訓練,這是折磨——對大語言模型來說也一樣。
Laravel AI SDK 在九月才剛走到 1.0,十月五日就推出 1.1(Laravel News 於十月七日報導)。這次不是炫技,而是把「量產級 AI 代理」真正會撞到的牆拆掉:提示詞太肥、內建工具沒有人工閘門、切換模型供應商時工具不相容就整段失敗。
一句話總結:技能按需載入、危險動作要人點頭、備援供應商更懂變通。
背景:為什麼 Skills 突然變成標準?
根據 Laravel News,SDK 現在支援 Agent Skills——也就是程式代理常用的資料夾格式:只在任務真的需要時,才把說明讀進來,而不是一開始就塞滿系統提示。PR 說明裡,Pushpak Chhajed 提到團隊以前兩度婉拒 Skills 支援,但這個格式如今已被許多工具採用,成為標準。
每個 skill 是 resources/skills 底下的資料夾,裡面要有 SKILL.md。frontmatter 至少要有 description;name 可省略,預設用資料夾名。你還可以放 references/ 這類附檔,讓代理在需要時再讀細節。
實作上,代理要實作新的 HasSkills 契約。它會得到一支 LoadSkill 工具:先列出每個 skill 的名稱與描述,模型再呼叫工具讀完整說明,必要時再帶路徑讀附檔。來源可以是目錄、Skill 物件,或是 closure——closure 會在工具第一次讀取時才執行,所以你可以依登入使用者從資料庫載入專屬技能。把路徑指到 .agents/skills,還能讓應用裡的代理跟你的程式代理共用同一套技能。
幾個實務邊界也寫得很清楚:工具只讀 skill 資料夾內的附檔;超過 256 KB 或二進位檔會被拒絕。若代理同時在 tools() 裡又加了 LoadSkill,SDK 會合併成一支工具並紀錄警告,因為供應商不接受重複的工具名稱。
對我們幫客戶做客服機器人、內部知識庫助手的專案來說,這等於把「整本 SOP 塞進 prompt」改成「先給目錄,再按題目開章節」——成本更穩、行為更可預期。
亮點二:Cohere 從「只能做向量」變成能聊天
以前 Cohere 在 SDK 裡主要負責 embeddings 與 reranking。1.1 由 Mojtaba Sayari 補上透過 Cohere v2 Chat API 的文字生成,支援串流、工具呼叫、結構化輸出與推理。預設模型是 command-a-03-2025。
有趣的細節:Cohere 無法強制指定某一支工具,所以 ToolChoice::tool('X') 的行為會變成「只送工具 X,並標記為一定要呼叫工具」。文件附件與 citations 尚未支援,但你可以透過 provider options 傳 documents、safety_mode 等選項。
企業端的意義很單純:多一個可切換的文字供應商,議價、備援、地區合規都多一條路。尤其台灣團隊常需要「主供應商掛了還能撐過尖峰」,這很實用。
亮點三:內建工具也能 requireApproval()
MCP、agent、similarity search、filesystem 這些內建工具,現在實作了 Approvable 契約,可以直接呼叫 requireApproval()。以前你得自己 subclass 才能加閘門;現在不用。
Laravel News 舉的例子很貼近真實:對 GitHub MCP 的工具做 map,凡是沒標 readOnlyHint 的,一律要求核准。預設仍是關閉核准,所以既有代理行為不變——這點對升級友善很重要。
我們常跟客戶說的那句話,終於有框架級的把手了:AI 可以讀,寫之前要人點頭。 退款、改訂單、動檔案系統、呼叫外部寫入型 API,都適合掛上核准。
亮點四:Failover 不再因為工具不相容整段掛掉
以前若代理掛了 Anthropic 的 WebFetch 與 WebSearch,備援名單是 ['anthropic', 'openai'],一旦 Anthropic 限流切到 OpenAI,OpenAI 不支援 WebFetch 就會直接拋例外,整段失敗。
1.1 的文字生成迴圈會在每次嘗試前,先拿掉當前 provider 不支援的 provider tools,所以備援可以只帶著 WebSearch 繼續跑。若某家沒有 hosted tool search,SDK 還會把 ToolSearch 拆開,改成一般工具送出。超過一個 ToolSearch wrapper 則仍會對每個 provider 拋錯——這是明確的限制,寫進文件比默默失敗好多了。
其他值得寫進升級清單的變更
MoveFile工具:一次呼叫就能重新命名或移動檔案,不必先複製再刪除。- 預設模型更新:例如 Anthropic 預設改為
claude-sonnet-5-5、Gemini 為gemini-3.8-flash。若你依賴預設而不是在config/ai.php釘死版本,升級後會自動用到較新模型。 - Self-hosted Laya classification:可用既有
typesafedriver 指到本機 Laya URL 做分類。 - 更多 provider tools 對應:Azure OpenAI 支援
ToolSearch;Groq 上WebSearch對應browser_search、CodeExecution對應code_interpreter(僅其 GPT-OSS 模型),且會忽略WebSearch的部分選項。 - 升級注意:1.0 升級指南更新為 Boost 升級指令需要
laravel/boost2.10.0 以上,且 SDK 與低於 1.0 的laravel/mcp衝突。
升級指令很直接:composer require laravel/ai:^1.1。
給企業與工作室客戶的實務建議
- 先盤點系統提示裡的「百科全書」。 退貨、保固、品牌語氣、法遵條款,改做成 skill 資料夾;系統提示只留角色與安全底線。
- 寫入型工具一律核准。 檔案系統、MCP 寫入、代表使用者執行的 agent 工具,預設
requireApproval()。 - 備援鏈要實測工具相容性。 升級後跑一次「主供應商失敗 → 備援接手」的演練,確認被拿掉的工具不會讓關鍵流程靜默半殘。
- 釘死模型版本。 不想被預設模型漂移影響品質與成本,就在設定檔明確指定。
- 共用
.agents/skills。 讓工程師的 coding agent 與線上客服代理吃同一套技能,文件只維護一份。 - 審核 UX 要設計好。 框架給你閘門,產品還要給操作者清楚的「允許/拒絕/原因」介面,否則核准會變成新的客服瓶頸。
工作室視角:什麼時候該導入,什麼時候先別急
若客戶只是「官網加一個 FAQ 聊天框」,Skills 的投資報酬可能有限——幾個固定回答用檢索或靜態內容就夠。但只要代理開始碰訂單、退款、改資料、呼叫外部 MCP,1.1 這組能力就從「好康」變成「該有的安全帶」。
我們實務上會建議分兩階段:第一階段把寫入工具加上核准,先止住風險;第二階段再把肥大的系統提示拆成 skill。順序很重要,因為核准改的是安全邊界,Skills 改的是成本與可維護性。兩者都值得做,但出事時,前者救得了你。
你可能會問
Q:我們不是 Laravel 專案,這篇有參考價值嗎?
有。「技能按需載入、危險工具要核准、備援要能降級」是任何 AI 代理架構都該有的原則,Laravel 只是先把它做成一等公民 API。
Q:Skills 會不會讓代理變慢?
會多一次(或數次)工具呼叫,但換來的是更短的系統提示與更少的無關上下文。多數客服場景裡,這比每次塞整本手冊划算。
Q:核准會不會拖垮即時聊天?
把核准範圍限縮在寫入與對外副作用;讀取知識、查詢訂單狀態可以保持自動。分層治理,而不是一刀切。
Q:一定要馬上升 1.1 嗎?
若你已在 1.0 跑生產代理,Skills 與內建工具核准通常值得盡快拿;記得先在預覽環境驗證預設模型變更與 failover 行為。
結語:好的 AI 代理,是懂得「先問再做」的代理
Laravel AI SDK 1.1 最讓我們開心的,不是又多了一個模型 logo,而是它承認了生產現場的三件真相:上下文有成本、工具有風險、供應商會掛。Skills、approval、failover 這三招,剛好各解一個痛點。
如果你的品牌正在把客服、內部知識庫或營運助手接到 Laravel 後端,歡迎找我們一起盤點:哪些該做成 skill、哪些動作一定要人點頭、備援鏈怎麼演練。我們很樂意幫你把「會聊天的 demo」變成「敢上線的流程」。
資料來源:Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat — Laravel News(Yannick Lyn Fatt,2026/10/07)