觀點 · 資訊分享
CrewAI 1.15.1:專案要明確指定定義檔才不會被誤判,網頁抓取工具也補上「重新導向到內網」的漏洞
多代理框架 CrewAI 在 6/27 釋出 1.15.1。這版有破壞性變更:JSON 團隊與宣告式流程專案必須在 pyproject 寫明定義檔;同時修補網頁抓取工具被重新導向騙去連內網的 SSRF 問題。
- 發布
- 2026-06-28
- 篇幅
- 約 5 分鐘 · 2,190 字
- 結構
- 9 節 + 3 題常見問題
- 標籤

一句話看懂:多代理框架 CrewAI 在 6 月 27 日釋出 1.15.1,專案類型不能再靠檔名猜了,必須在 pyproject 明寫;同時修補了網頁抓取工具會被「重新導向」騙去連內部位址的 SSRF 問題。

先用白話講:CrewAI 是什麼?
想像一間小型公司:有人負責上網查資料、有人負責整理、有人負責寫報告。CrewAI 就是用程式碼組出這種「AI 員工團隊」的工具,每位 AI 代理有自己的角色和可用的工具,合作完成一件事。
這個團隊(Crew)可以寫在 Python 裡,也可以用 JSON 或 YAML 這類設定檔「宣告」出來。這次的更新跟「系統怎麼找到你的設定檔」有關。
發生什麼事
CrewAI 在 6 月 27 日釋出 1.15.1,官方釋出說明列出幾項:
- 新功能:
crewai create完成後自動初始化 Git 儲存庫;CLI 部署完成後開啟部署頁面 - 要求明確的專案定義(破壞性變更)
- 修正:JSON 團隊範本渲染、版本固定、部署頁面連結的問題
- 資安修正:網頁抓取的 SSRF 重新導向繞過
破壞性變更:要明寫定義檔
以前 CrewAI 會偷偷看專案裡有沒有 crew.json 或 crew.jsonc 這類檔名,來判斷這是哪種專案。PR #6358 說明,這會讓一個隨手放的檔案改變 CLI 行為,所以改成明確宣告。
在 pyproject.toml 加上(取自 PR 說明):
[tool.crewai]
type = "crew"
definition = "crew.jsonc"
宣告式流程專案則是:
[tool.crewai]
type = "flow"
definition = "flows/research.yaml"
definition必須是專案內的檔案路徑;絕對路徑、~、不存在的檔案、資料夾,或跑出專案根目錄的路徑,都會被拒絕- 這些規則同時套用在執行、安裝、部署檢查、繪圖與記憶重設等指令
被移除的舊 API 與替代寫法
| 舊用法 | 新用法 |
|---|---|
Flow.from_definition(definition) |
Flow.from_declaration(contents=definition) |
FlowDefinition.to_json()、to_yaml() |
FlowDefinition.to_dict(),再用自己的 JSON 或 YAML 函式庫輸出 |
FlowDefinition.from_dict() |
FlowDefinition.from_declaration(contents=data) |
FlowDefinition.json_schema() |
FlowDefinition.model_json_schema(by_alias=True) |
資安修補:SSRF 與重新導向
抓網頁的工具(ScrapeWebsiteTool、ScrapeElementFromWebsiteTool,以及網址型 RAG 載入器)原本會檢查你給的網址,但網站可以回「請改去另一個網址」。攻擊者就能用一個看起來公開的網址,轉向 127.0.0.1 這類內部位址,讓你的伺服器去連本來不該碰的地方,這就是 SSRF。
PR #6331 的做法:新增 safe_get(),先驗證初始網址,再驗證每一次重新導向的目標,才會繼續連線;並加入測試,證明「公開網址轉向 127.0.0.1」會在第二次請求發出前被擋下。PR 也寫明,更底層的 DNS 檢查時機與 IP 固定問題,屬於另外的後續強化。
給開發者的技術細節
- 升級後如果 CLI 找不到專案,先檢查
[tool.crewai]有沒有補上 - 前一版 1.15.0(6/25)新增了宣告式流程與 JSON 團隊的相關功能,並修了 skill 壓縮檔解壓縮時的符號連結路徑問題,以及憑證檔案的「只有擁有者可存取」權限;這次是在它的基礎上收緊設定
- 這是 AI 代理框架的小版本更新,但含破壞性變更,建議先在測試環境升級,不要直接在正式環境跑
pip install -U
我的看法
「讓 AI 代理上網抓資料」這類工具,SSRF 是最容易被忽略的風險:代理跑在你的伺服器上,如果被誘導去連內網的管理介面或雲端的中繼資料位址,後果可能比一般網頁漏洞嚴重。這次的修補很值得借鏡:不要只檢查第一個網址,每一次跳轉都要重新檢查。我自己如果寫會自動抓網址的程式(例如替客戶做的爬取功能),也會採同樣的原則。
至於破壞性變更,我覺得方向是對的:用檔名猜專案類型太容易出意外,明寫才可預期。代價是升級時要手動補設定,建議先看一次 PR 的遷移說明。
名詞小辭典
- AI Agent(代理):能自己決定要用什麼工具、分幾步完成任務的 AI。
- Crew / Flow:CrewAI 裡的「代理團隊」與「步驟流程」兩種組織方式。
- SSRF(Server-Side Request Forgery):騙伺服器代替攻擊者去連線,常被用來碰內部網路。
- RAG:讓 AI 先檢索外部資料再回答的做法。