第九章:老闆請過目!Human-in-the-Loop (人類在迴圈的最後把關機制)

隨著你對於 CrewAI 的掌握度越來越高,你建立的虛擬團隊也會越來越強大。你可能會開始讓他們處理具備高度商業風險的任務。

想像一下這個極度真實且可能發生的災難場景: 你寫了一個「自動幫你發行銷 Email」的 Agent。你給了他讀取公司客戶名單資料庫的權限,並給了他一個 send_email_api 的自訂工具。你設定了 Cron Job 排程,讓他每天晚上 12 點自動根據當天的新聞,寫一封推銷信寄給客戶。 結果,某天晚上 AI 的大型語言模型突然發神經,產生了嚴重的「幻覺 (Hallucination)」,他發明出了一篇帶有極端政治歧視字眼、或是擅自將公司的萬元產品標價寫錯成「1 元大放送」的促銷文案! 然後,因為你設定了全自動化,這個 Agent 毫不猶豫地呼叫了寄信工具,直接把這封毀滅性的信件寄給了你的 1 萬個 VIP 客戶!

隔天早上醒來,你的手機被打爆,這絕對是一場公關與財務的超級大災難,你的公司可能直接面臨倒閉危機。

對於這類牽涉外部客戶或金流的高風險任務,我們絕對、絕對不能讓 AI 100% 自動駕駛。 我們需要 AI 幫我們把粗重的工作 (找資料、寫草稿、統整收件人名單) 準備好,但是,「按下『確認發送』按鈕的最後決定權,必須掌握在人類老闆的手中」。 這就是業界在設計企業級 AI 系統時,最流行也最至關重要的安全守則核心:Human-in-the-Loop (人類在迴圈中 / 人機協作) 概念。

🎯 本章實戰目標

  1. 深入理解 Human-in-the-Loop (HITL) 在商業應用與系統架構上的絕對重要性。
  2. 實作讓 CrewAI 在執行某個特定高風險任務即將結束前,主動暫停執行,並等待人類的輸入與審查授權。
  3. 學習如何讓人類在終端機輸入的口語回饋,直接引導 AI 重新修改產出,直到滿意為止。

🙋‍♂️ 實戰:設定強制人類審查防護網 (Human Input)

在 CrewAI 強大且優雅的架構中,要讓一個任務「停下來等待人類審查」,設定簡單到不可思議。 你不需要去寫任何複雜的 while True 等待迴圈,也不需要架設 WebSocket。你只要在建立 Task (任務) 的時候,加上一個簡單的布林值參數 human_input=True,剩下的 CrewAI 底層都會幫你搞定。

🔥【Vibe Prompt 實戰咒語:呼叫人類老闆】 我有一個 CrewAI 的 Task 叫做 send_email_task。 這是一個牽涉外部發送的高風險任務,我絕對不希望 Agent 在寫完草稿後直接把信寄出去。我希望他在執行這個任務的最終階段,先把信件草稿完整地印在終端機上,然後立刻暫停整個程式的執行。 此時,終端機必須進入等待人類輸入的狀態,問我 "老闆,您覺得這封信可以發送嗎?請給予修改建議,或直接輸入 'y' 授權繼續:"。 請教我如何在這個 Task 的宣告中,正確使用 human_input=True 參數來達成這個人機協作機制。

AI 接收指令後,會幫你修改你的任務宣告,就像這樣:

from crewai import Task

# 這是負責寫信並寄信的最終任務
send_email_task = Task(
    description='根據研究員先前的報告,撰寫一封充滿說服力的行銷 Email 給我們的 VIP 客戶,並在確認後呼叫寄信工具將其發送。',
    expected_output='一封排版優美、語氣專業的信件草稿,以及寄發成功的確認訊息。',
    agent=email_marketer,
    
    # 🛑 關鍵護欄:強制 Agent 在這項任務結束前,必須徵求人類老闆的同意!
    human_input=True 
)

[💻 執行過程的震撼人機協作體驗] 當你在終端機執行 crew.kickoff() 時,整個流程會順暢無比地跑完前面的市場研究與文案寫作。 但當流程走到 send_email_task 要準備產出最終結果的時候,終端機的畫面會突然停住,並在最下方閃爍著一個等待你打字的輸入框:

Please provide feedback (or 'y' to approve):

此時,身為人類總監的你,有兩種權力選擇:

  1. 老闆很滿意,直接放行 (Approve): 你往上捲動看了上面 AI 寫的草稿,覺得文筆非常棒、無懈可擊。你只要在終端機輸入小寫的 y 並按下 Enter。 Agent 就會收到你的「授權放行」指令,開心地繼續往下執行,並呼叫真正的寄信 API 工具,把任務收尾。

  2. 老闆要退件,要求重寫 (Feedback): 你覺得信件語氣太兇了,或者報價少寫了一個零。你可以在終端機直接用白話文輸入你的意見,例如: 「這封信太嚴肅了,幫我把開頭改成輕鬆溫暖的問候。另外在結尾加幾個感謝的表情符號,並把價格促銷的部分用大寫粗體標示出來。」 按下 Enter 後,神奇的事情發生了! Agent 會立刻把你的這段「人類反饋」吸收進他的大腦記憶中,重新啟動思考模型,並當場為你「重新寫一次草稿」! 重寫完後,他會再次暫停,並再次謙卑地詢問你滿不滿意。這個過程會一直循環,直到你最終輸入 y 為止。

這就是完美的人機協作 (Human-AI Collaboration)!


💼 [商業應用場景] 什麼時候必須開啟 Human-in-the-Loop?

在為企業客戶規劃 AI 系統架構時,精準判斷何時必須開啟 human_input,是一個資深架構師的職責與價值所在。以下是絕對必須開啟防護網的「紅線區」:

  1. 任何牽涉到真實金錢支付與帳戶的操作:(例如:自動下單買賣真實股票、自動核准客戶退款到信用卡、自動發放員工薪資)。
  2. 會觸及外部客戶、影響公司商譽的通訊:(例如:大量寄發行銷信、官方 Twitter/IG/Facebook 粉絲團的自動發文、自動回覆一星負評)。
  3. 不可逆的毀滅性資料庫操作:(例如:清理失效的會員資料、刪除過期訂單、重置資料庫狀態)。

相對的,如果是「每小時爬取最新財經新聞,並整理成內部報表,存入公司內部私有資料庫讓員工參考」這類純內部的資訊處理,因為不涉及外部風險,則可以放心設定為 False,讓 AI 100% 關燈自動跑。

✅ 本章小結

AI 是人類有史以來最強大的生產力助手,他可以幫我們在幾秒鐘內完成 99% 繁瑣無聊的資料爬取與文字準備工作。但是,最終要為商業結果、財務損失與商譽承擔責任的,永遠是我們人類。 善用 human_input=True,不僅能保護你的公司免於 AI 幻覺的核彈級災難,也能讓你的企業客戶在決定引進你的 AI 系統時,因為「保有最後控制權」而感到無比的「安心感」。這會大大提高你提案的成交率。

到目前為止,我們的虛擬團隊都能在終端機完美運作了。但在下一個大型專案中,我們將面對一個前端工程師最在意的問題:我要怎麼把這群 AI 在終端機裡寫出來的一長串文字對話,變成網頁可以讀懂、精準排版的乾淨 JSON 格式? 這將是 CrewAI 在現代 Web 開發中最具商業價值的收尾技術!我們拭目以待!

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!