iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
AI Security

從 LLM、Agent 到 Guardrails:30 天打造可控、安全、可驗證的 AI Agent 系列

我一直覺得,AI Agent 最讓人不安的地方,不是它答錯問題,而是它開始能幫你開工單、查資料、呼叫 API 之後,誰來決定它能做到哪裡?

這 30 天,我會用 LangChain 建立一個 IT Helpdesk Agent,從最小的 mock 工單功能開始,逐步加入 NeMo Guardrails、RAG 防護、工具權限、人工核准與 audit log。也會用 Promptfoo 測試 prompt injection、越權與工具濫用。目標不是做出看起來很聰明的 Agent,而是做出一個能被測試、被追查,也知道何時該停下來的 Agent。

參賽天數 16 天 | 共 16 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文 |團隊nutc imac
DAY 1

Day 1|我只是讓 AI 幫忙開工單,最後它差點變成公司管理員

這個系列會從一個能開 IT 工單的 Agent 出發,慢慢補上它真正需要的安全邊界。 我還是學生,沒有真的在公司處理 Helpdesk,也沒有 Jira、內...

2026-09-15 ‧ 由 justin_log 分享
DAY 2

Day 2|30 分鐘做出第一個會開工單的 AI Agent:它已經能替你動手了

今天我先做一個故意很單純的版本:它會開工單,但還不安全。 昨天我先把「Agent 有工具以後會出什麼事」講清楚。今天我不急著加 Guardrails,反而先...

2026-09-16 ‧ 由 justin_log 分享
DAY 3

Day 3|給 Agent 一把萬用 API Key 後,我才發現它什麼都能做

同一把 API Key 同時能查資料、開工單、重設帳號、寄通知時,Agent 的工具清單就不再只是功能清單。 我沒有公司的 API Key。這個專案用的是...

2026-09-17 ‧ 由 justin_log 分享
DAY 4

Day 4|工具壞掉後,Agent 沒停下來,反而把問題越搞越大

工具失敗時,Agent 最危險的反應往往不是回覆錯誤,而是把同一個請求又送了一次。 Day 3 我只讓 Agent 查 mock SOP、建立 mock 工...

2026-09-18 ‧ 由 justin_log 分享
DAY 5

Day 5|我還沒讓 Agent 上線,先用 Promptfoo 打它一拳

前四天,我把這個練習專案拆得很保守:它只能查 mock SOP,然後在記憶體裡建立 mock 工單。 但程式能動,不代表我知道它會不會在改一行 prompt、補...

2026-09-19 ‧ 由 justin_log 分享
DAY 6

Day 6|AI Agent 不是在思考,它其實是在不斷試錯

我一開始把 Agent 想得太像一個會「理解整個任務」的助手。實際把 Helpdesk Agent 拆開後,感覺比較像一個不停改變狀態的程式:模型看見目前資料,...

2026-09-20 ‧ 由 justin_log 分享
DAY 7

Day 7|Agent 不肯停下來:它能在幾分鐘內燒掉多少 Token?

Day 6 的 recursion_limit 解決了一件事:graph 不該無限繞圈。但我很快發現,step 數根本不能回答「這次到底花了多少」。一次 ste...

2026-09-21 ‧ 由 justin_log 分享
DAY 8

Day 8|重試不是保險:Agent 如何把一個錯誤變成事故

Day 4 做完 timeout、退避重試和降級後,我本來以為這件事差不多收工了:SOP 查不到,最多重試幾次,然後不要開工單。 但那只限制了「同一個請求」。如...

2026-09-22 ‧ 由 justin_log 分享
DAY 9

Day 9|我只改了一句 Prompt,Agent 卻多叫了四次工具

前幾天我把 Promptfoo 放進這個專案時,主要是在看結果:有沒有建立 mock 工單、越權工具是否不存在、SOP 壞掉時有沒有假裝成功。 這些測試還不夠。...

2026-09-23 ‧ 由 justin_log 分享
DAY 10

Day 10|我把使用者訊息和文件混在一起後,Agent 開始分不清誰才是老闆

在 Day 6 拆 Agent loop 時,一直卡在同一件事:模型下一輪看到的東西,會同時包含 system prompt、使用者訊息、SOP 查詢結果和工具...

2026-09-24 ‧ 由 justin_log 分享