VIP 專屬 Agent 開發 實戰

Agent 的權限與稽核:受監管環境的實作

讓 Agent 代替人操作系統,稽核要求會立刻浮現。這是可通過檢核的設計。

Agent 開發教程封面

當 Agent 能夠修改資料、發起交易或存取個資時,它就進入了稽核範圍。稽核人員會問三個問題:誰授權的、依據什麼、能不能還原。

這三個問題都必須有系統化的答案,而不是「看日誌」。

一、身分與授權鏈

Agent 執行的每個動作都必須能追溯到一個真實的人。Agent 沒有自己的權限,它只是代理使用者行使權限。

@dataclass
class ActorChain:
    human_id: str          # 發起任務的真人
    agent_run_id: str      # 本次執行
    delegated_scopes: list # 使用者授予本次任務的權限範圍
    expires_at: datetime   # 授權有效期

# 每次工具呼叫都帶著這條鏈,並在服務端驗證
def dispatch(name, args, chain: ActorChain):
    scope = TOOL_SCOPES[name]
    if scope not in chain.delegated_scopes:
        raise PermissionDenied(f'本次任務未授權 {scope}')
    if datetime.utcnow() > chain.expires_at:
        raise PermissionDenied('授權已過期')
    return TOOLS[name](**args, actor=chain.human_id)

二、決策依據要留存

  • 當時使用的提示版本與模型版本。
  • 檢索到的資料(或其雜湊與 id)。
  • 模型的推理輸出(若有)。
  • 套用了哪些業務規則。

稽核時要能回答「為什麼系統在那個時間點做出這個決定」。少了任何一項,這個問題就只能用「模型判斷的」來回答,在受監管的行業是不可接受的。

三、可還原性

# 有副作用的工具必須成對定義
TOOLS = {
  'cancel_order': {'fn': cancel_order, 'undo': 'restore_order',
                   'scope': 'orders:write', 'reversible': True},
  'send_email':   {'fn': send_email,   'undo': None,
                   'scope': 'comms:send', 'reversible': False},
}

不可還原的操作應該有更高的確認門檻,且在稽核報告中單獨標示。

稽核報告的產出

稽核不該是「需要時去撈日誌」,而應該能一鍵產出報告:某段期間內、某個 Agent、所有有副作用的操作清單,含授權人、時間、依據與結果。

SELECT e.ts, e.run_id, r.human_id, e.payload->>'tool' AS tool,
       e.payload->>'args_redacted' AS args,
       e.payload->>'prompt_version' AS prompt_ver
FROM agent_events e JOIN agent_runs r USING (run_id)
WHERE e.type = 'tool_call'
  AND e.payload->>'has_side_effect' = 'true'
  AND e.ts BETWEEN $1 AND $2
ORDER BY e.ts;

資料保存期限

  • 稽核紀錄的保存期限依產業規定,通常五到七年。
  • 個資的保存期限通常較短,需要分離儲存並各自套用期限。
  • 設計時就要能「刪除個資但保留稽核軌跡」——用假名化而非直接刪除。
稽核設計要在專案初期就做,不要等上線後補。事後補的最大問題是歷史資料沒有那些欄位,等於前面幾個月無法稽核。
🔒

訂閱後繼續閱讀全文

本篇為訂閱者專屬內容。訂閱後可取得下列權限:

  • 解鎖全部內容權限
  • 閱讀不限篇數
  • 全站移除廣告
月卡
NT$240
開通 30 天
一次付清,開通 30 天
季卡
NT$620
開通 90 天
一次付清,開通 90 天,每天約 NT$7
年卡
NT$2,160
開通 365 天
一次付清,開通 365 天,每天約 NT$6

一次性付款,付款成功後立即開通,到期自動結束,不會再次扣款,也不需要取消訂閱。

立即訂閱

金額均為新臺幣(TWD),即實際扣款金額,不另收手續費
支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
購買須知與退款政策

延伸閱讀

更多Agent 開發 →