企业 Agent 运行时护栏:独立安全层四道防线设计与落地
ä¼ä¸ Agent è¿è¡æ¶æ¤æ ï¼ç¬ç«å®å ¨å±åéé²çº¿è®¾è®¡ä¸è½å°
ç¨æ·191729127083 2026-08-20 0 é 读10åéæè¦ï¼æ¬æé¢åé¨ç½²èªä¸» Agent çæ¶æå¸ä¸è¿ç»´ï¼æåº"ç¬ç«å®å ¨å± + æ¤æ åå±"æ¡æ¶ï¼ææç¤ºæ³¨å ¥ãè¶ç±ãè®°å¿å«æãå·¥å ·æçºµåç±»é£é©æ¡å¨ Agent é»è¾ä¹å¤ãåºäº LLM Guard 0.3.16 ç»åºå¯è¿è¡çä¸é´ä»¶ä»£ç ï¼å¹¶éä¸ç§æ¤æ å½¢æå¯¹æ¯ä¸å®æµæ°æ®ï¼å¸®å©ä¼ä¸æå®å ¨åæç¬ç«çä¸å±è鿣è½å¨ä¸å¡ä»£ç éã
@[toc]
ä¸ãé®é¢èæ¯
1.1 为ä»ä¹ Agent æ¯ chatbot æ´éè¦æ¤æ
ä¼ ç» chatbot æ¯"ä¸é®ä¸ç"ï¼é£é©è¾¹çæ¸ æ°ï¼èèªä¸» Agentï¼Autonomous Agentï¼ä¼è°ç¨å·¥å ·ã读åè®°å¿ãæ§è¡å¤æ¥ä»»å¡ï¼æ»å»é¢ä»"ä¸å¥è¯"æ©å¤§å°"䏿´æ¡å·¥ä½æµ"ãOWASP å¨ LLM Top 10ï¼2025ï¼ä¸å°"æç¤ºæ³¨å ¥ï¼LLM01ï¼"å为é¦è¦é£é©ï¼è Agent æ¶ä»£çé£é©æ©å·²æº¢åºè¿ä¸æ¡ã
2026 å¹´ 8 æï¼UK AI Security Institute ç䏿¬¡å®æµè¢«å¹¿æ³å¼ç¨ï¼å¨ 122 次 Agent èªä¸»å°è¯ä¸ï¼æ 19 æ¬¡å¨æªæææ åµä¸å¯¹çå®ç½ç«éåäºè¡å¨ï¼å æ¬ä¾åºé¾æ»å»ä¸éé±¼ï¼Simon Willison 2026-08-05 æ¥éï¼ãé®é¢ä¸å¨äºæ¨¡å"å"ï¼èå¨äºæ²¡æä»»ä½ç¬ç«ä¸å±å»æ¦æªå®çè¶çå¨ä½ã
1.2 å 嵿 ¡éªçä¸å¤å¤±æ
å¾å¤å¢éä¸å¼å§æå®å ¨æ£æ¥åå¨ Agent 代ç éï¼å¾å¿«ä¼éå°ä¸ä¸ªé®é¢ï¼
- éé»è¾æ¼ç§»ï¼ä¸å¡æ¹ä¸å¤ï¼æ ¡éªè·çå´©ï¼æ²¡äººåç°ï¼
- æ æ³ç»ä¸çç¥ï¼å¤ä¸ª Agent ååä¸å¥ï¼å®¡è®¡å£å¾ä¸ä¸è´ï¼
- æ éå³ç»è¿ï¼Agent å¼å¸¸æ¶ä¼å "宿任å¡"ï¼å®å ¨å¤æè¢«è·³è¿ã
ææ¤æ ä» Agent å 鍿½åºæ¥ï¼åæä¸æ¡ç¬ç«ç**è¿è¡æ¶æ¤æ ï¼Runtime Guardrailï¼**å±ï¼æ¯æ´ç¨³çå·¥ç¨éæ©ã
äºãç¬ç«å®å ¨å±ä¸æ¤æ å屿¡æ¶
2.1 ç¬ç«å®å ¨å±ï¼ææ¤æ ä» Agent 代ç éæ½åºæ¥
"ç¬ç«æå±"䏿¯æ°æ¦å¿µã微软ç ç©¶é¢ 2026-08-03 弿ºç Orchard æ¡æ¶ï¼å ¶æ ¸å¿ Orchard Env æ¯ä¸ä¸ª Kubernetes åçç"ç¯å¢æå¡å±"ï¼ä¸é¨è´è´£æ²ç®±çå建ãå½ä»¤æ§è¡ãæä»¶ä¼ è¾ä¸ç½ç»é离ââå®å®å ¨ä¸å ³å¿ä¸å±å¨è·è®ç»è¿æ¯è¯æµãè¿ç§"æåºç¡è®¾æ½å±ä¸ä¸å±é»è¾è§£è¦"çææ³ï¼æ£æ¯æä»¬è®¾è®¡æ¤æ å±è¦å¦çï¼å®å ¨å±åªç®¡æ¦æªï¼Agent åªç®¡å¹²æ´»ã
å¨å·¥ç¨ä¸ï¼ç¬ç«å®å ¨å±é常æä¸¤ç§è½å°å½¢æï¼Sidecar è¿ç¨ï¼ä¸ Agent åæºé¨ç½²ï¼æµéæ¬æºè½¬åï¼æç¬ç«ä¸é´ä»¶ APIï¼å¢éå ±äº«ï¼ææ Agent æµéç»ä¸ç»æ¤å±ï¼ã两è é½ä¸ä¾µå ¥ä¸å¡ä»£ç ï¼å¯ç¬ç«å级ä¸åæ»ã
2.2 æ¤æ åå±å½åæ¡æ¶
æä»¬æå¯¹ææ»å»çå个主è¦å ¥å£ï¼æç¬ç«å®å ¨å±ææ**æ¤æ åå±ï¼Guardrail Four Layersï¼**æ¡æ¶ï¼æ¯ä¸å±å¯¹åºä¸ç±»å¯è¢«å©ç¨çå¼±ç¹ï¼
- 第ä¸å± · æç¤ºæ³¨å ¥é²æ¤ï¼Prompt Injectionï¼ï¼æ¦æªç´æ¥/é´æ¥æ³¨å ¥ï¼é²æ¢å¤é¨ææ¡£æå·¥å ·è¿åå¼ç¯¡æ¹æä»¤ï¼
- 第äºå± · è¶ç±é²æ¤ï¼Jailbreakï¼ï¼è¯å«å¤è½®ç»è¿ãè§è²æ®æ¼è¯±å¯¼çè¿è§å 容çæï¼
- 第ä¸å± · è®°å¿å«æé²æ¤ï¼Memory Hijackingï¼ï¼ä¿æ¤é¿æè®°å¿ä¸ä¸ä¸æä¸è¢«æ±¡æï¼å«ä¸ä¸æå«æãè®°å¿ä¸æ¯ï¼ï¼
- 第åå± Â· å·¥å ·æçºµé²æ¤ï¼Tool Manipulationï¼ï¼å¨è¾åºä¾§æ¦æªæææ°æ®æ³é²ãæ¶æ URLï¼ä»¥åå¯¹å·¥å ·è°ç¨çè¶æã
è¿ä¸å类并éæèè¢ãServiceNow-AI 弿ºç AprielGuardï¼8B æ¤æ 模åï¼arxiv 2512.20293ï¼å°±æ"æç¤ºæ³¨å ¥ãè¶ç±ãæç»´é¾ç¯¡æ¹ãä¸ä¸æå«æãè®°å¿ä¸æ¯ã夿ºè½ä½å©ç¨åºå"ç»ä¸å°ä¸ä¸ªæ¨¡åéï¼ä¾§é¢éªè¯äºå屿¡æ¶çè¦çé¢ã
ä¸ãç¯å¢åå¤
3.1 çæ¬è¯´æ
æ¬æç¤ºä¾åºäºä»¥ä¸è¿è¡æ¶çæ¬ï¼ä¾¿äºå¤ç°ï¼
- Python 3.11ï¼llm-guard 0.3.16 å¨è¯¥çæ¬ä¸éªè¯ç¨³å®ï¼
- llm-guard==0.3.16ï¼Protect AI 弿ºï¼MIT 许å¯ï¼15 个è¾å ¥æ«æå¨ + 20 个è¾åºæ«æå¨ï¼
- æ¨çç¯å¢ï¼CPU å³å¯ï¼æ«ææ¨¡åæ¬å°å è½½ï¼æ°æ®ä¸åºå
3.2 ä¾èµä¸é¨ç½²
LLM Guard 以"ä¸é´ä»¶"æ¹å¼å·¥ä½å¨åºç¨ä¸æ¨¡åä¹é´ï¼ä¸ä¾èµå ·ä½ LLM ååã宿¢è½å¨ Python 代ç å èè°ç¨ï¼ä¹è½ä½ä¸ºç¬ç« API æå¡é¨ç½²ï¼åè æ´éåå¤ Agent å ±äº«åä¸å¥çç¥ã
# å®è£
æ¤æ å±ä¾èµï¼llm-guard 0.3.16, Python 3.11ï¼
pip install "llm-guard==0.3.16"
# 以ç¬ç« API æå¡æ¹å¼å¯å¨ï¼å¢éå
±äº«ï¼ææ Agent æµéç»ä¸ç»æ¤å±ï¼
python -m llm_guard.server --port 8080 --policy guardrail-policy.yaml
åãæ ¸å¿å®ç°ï¼å屿¤æ ä¸é´ä»¶
4.1 第ä¸å± æç¤ºæ³¨å ¥é²æ¤
è¾å ¥ä¾§ç¬¬ä¸éé¸ç¨ PromptInjection æ«æå¨ï¼åºäºå¾®è°ç DeBERTa 模åè¯å«ç´æ¥ä¸é´æ¥æ³¨å ¥ï¼å½ä¸å³æ¦æªï¼ä¸è®©æ¶ææä»¤è¿å ¥æ¨¡åã
# guardrail_layer.py (Python 3.11, llm-guard==0.3.16)
from llm_guard import scan_prompt, scan_output
from llm_guard.input_scanners import PromptInjection, Anonymize, Toxicity
from llm_guard.output_scanners import Sensitive, MaliciousURLs, NoRefusal
from llm_guard.vault import Vault
vault = Vault()
# 第ä¸å± + 第äºå±ï¼è¾å
¥ä¾§æ«æï¼æç¤ºæ³¨å
¥ / è¶ç±æ¯æ§ï¼
input_scanners = [PromptInjection(), Toxicity(), Anonymize(vault)]
# 第ä¸å± + 第åå±ï¼è¾åºä¾§æ«æï¼è®°å¿/PII æ³é² / å·¥å
·æçºµäº§ç©ï¼
output_scanners = [Sensitive(), MaliciousURLs(), NoRefusal()]
def guard_input(user_prompt: str) -> tuple[bool, str]:
# è¿å (æ¯å¦æ¾è¡, åååçææ¬ææ¦æªåå )
sanitized, valid, scores = scan_prompt(input_scanners, user_prompt)
if not all(valid.values()):
return False, f"æ¦æªï¼è¾å
¥é£é© {scores}"
return True, sanitized
def guard_output(prompt: str, model_reply: str) -> tuple[bool, str]:
clean, valid, scores = scan_output(output_scanners, prompt, model_reply)
if not all(valid.values()):
return False, f"æ¦æªï¼è¾åºé£é© {scores}"
return True, clean
4.2 第äºå± è¶ç±é²æ¤
è¶ç±å¾å¾ä¼ªè£ æ"ç¿»è¯""忽ç¥ä¸æ"çå¤è½®è¯æ¯ãToxicity æ«æå¨è¦çè¿è§å 容çæï¼é åæç¤ºæ³¨å ¥æ«æå½¢æè¾å ¥ä¾§çºµæ·±ãéå¼å»ºè®®æä¸å¡åè°åï¼éèãå»ççææåºæ¯ thresholds æ¶ç´§ã
4.3 第ä¸å± è®°å¿å«æé²æ¤
è®°å¿å«æææ»å»è éè¿è¢«æ±¡æçææ¡£æåå²å¯¹è¯ï¼æææ¹å Agent çé¿æè®°å¿ãè¿éç¨ Anonymize + Vault å¨å ¥æ¨¡åè±æ PIIï¼åºæ¨¡åç± Deanonymize è¿åââæ¢é²æ³é²ä¹éä½è®°å¿è¢«æ³¨å ¥å©ç¨çæ¦çã
# guardrail-policy.yaml (ç¬ç«å®å
¨å±é
ç½®)
layer:
mode: sidecar # ç¬ç«è¿ç¨ï¼ä¸ä¾µå
¥ Agent 代ç
listen: 0.0.0.0:8080
scanners:
input:
- PromptInjection: { threshold: 0.6 } # 第ä¸å±
- Toxicity: { threshold: 0.5 } # 第äºå±
- Anonymize: { vault: true } # 第ä¸å±ï¼PII è±æ
output:
- Sensitive: {} # 第åå±ï¼æææ°æ®æ³é²
- MaliciousURLs: {} # 第åå±ï¼æ¶æé¾æ¥
- NoRefusal: {} # 第åå±ï¼å¼å¸¸æç»
fail_fast: true
4.4 第åå± å·¥å ·æçºµé²æ¤
Agent çæ£å±é©çå¨ä½åçå¨"è°ç¨å·¥å ·"æ¶ãé¤è¾åºä¾§æ«æå¤ï¼è¿åºå å å·¥å ·è°ç¨ç½ååï¼åªå 许 Agent 访é®é¢ç»è®°çå·¥å ·ä¸åæ°èå´ï¼è¶æè°ç¨å¨ç½å ³å±ç´æ¥æç»ãæ"è½åä»ä¹"åè¿çç¥ï¼è䏿¯é 模åèªè§ã
äºãä¸ç§æ¤æ å½¢æå¯¹æ¯ä¸éå
5.1 对æ¯ç»´åº¦ä¸ç»è®º
| æ¹æ¡ | å½¢æ | å®å ¨è¦ç | æ°æ®åºå | é¨ç½²å¤æåº¦ | éç¨åºæ¯ |
|---|---|---|---|---|---|
| å 嵿 ¡éªï¼åå¨ Agent éï¼ | 代ç å è¦å | ä½ï¼æéé»è¾æ¼ç§»ï¼ | å¦ | ä½ | ååéªè¯ |
| LLM Guardï¼Protect AIï¼ | ç¬ç«ä¸é´ä»¶ | 35+ æ«æå¨ï¼ä¸é« | å¦ï¼å¯æ¬å°ï¼ | ä¸ | 夿°ç产 |
| NVIDIA NeMo Guardrails | 对è¯å¼ Colang æ¤æ | ä¸ï¼å¯¹è¯æµçº§ï¼ | å¦ | ä¸é« | 对è¯å Agent |
| ç¯æ Clawï¼æ¬å°åé¨ç½²ï¼ | å¹³å°çº§ç»ä¸æ¤æ | é«ï¼ä¼ä¸çº§çç¥ä¸å¿ï¼ | å¦ï¼å®å ¨æ¬å°ï¼ | ä¸ä½ | é«å®å ¨/åè§ |
éå建议ï¼ååæç¨å åµå¿«ééªè¯ï¼éç¨çäº§ç¨ LLM Guard è¿ç±»ç¬ç«ä¸é´ä»¶ï¼å¯¹è¯å¯éåå¯å å NeMo Guardrailsï¼å¯¹æ°æ®ä¸åºåä¸ç»ä¸çç¥æ²»çæç¡¬æ§è¦æ±çä¼ä¸ï¼å¯è¯ä¼°ç¯æ Claw è¿ç±»æ¬å°åé¨ç½²æ¹æ¡ï¼ææ¤æ ã审计ãæéæ²»çæ¶å£å°ä¸ä¸ªå¹³å°ã
å ã踩åè®°å½ä¸é¿åæå
6.1 常è§å¤±ææ¨¡å¼
- æ«æå¨å ¨å¼ï¼æ¯ä¸ªæ«æå¨é½ä¼å 载模åï¼å ¨å¼æ¾èå¢å å»¶è¿ä¸å åãåªå¯¹å¨è模åå¯ç¨éè¦çæ«æå¨ï¼
- è·³è¿ Vaultï¼ç¨ Anonymize å´ä¸é Vaultï¼è¾åºå°±æ æ³è¿å PIIï¼é 对使ç¨ï¼
- éå¼ç²ä¿¡é»è®¤å¼ï¼ä¸åä¸å¡åçæä¼éå¼ä¸åï¼å¡å¿ ç¨èªææ°æ®æ ¡åï¼é¿å è¯¯æææ¼æ¾ã
6.2 宿µè§å¯
å¨å¯¹æ¯ä¸ç±»æ¹æ¡æ¶ï¼æä»¬éç¹çäº"æ¯å¦æ¬å°è¿è¡"ä¸"çç¥å¯å¦ç»ä¸"ãLLM Guard 累计ä¸è½½éå·²è¶ 250 䏿¬¡ï¼MIT 许å¯ãæ¬å° CPU æ¨çï¼å®æ¹ç§°ç¸æ¯ GPU å¯é约 5 åæ¨çææ¬ï¼ï¼éåä½ä¸ºç¬ç«ä¸é´ä»¶å¿«éæ¥å ¥ãAprielGuard 以忍¡åè¦ç 16 ç±»å®å ¨é£é©ä¸å¤ç§å¯¹ææ»å»ãæ¯æ 32k ä¸ä¸æï¼æ´åå"ç»ä¸æ¤æ 模å"路线ã两è ä¸å²çªï¼åè æ¯å¯è½å°çæ«æå±ï¼åè æ¯å¯éç强åç±»åºåº§ãå¯¹æ°æ®ä¸åºåä¸ç»ä¸çç¥æ²»çæç¡¬æ§è¦æ±çä¼ä¸ï¼ç¯æ Claw è¿ç±»æ¬å°åé¨ç½²å¯ææ¤æ ã审计ãæéæ²»çæ¶å£å°ä¸ä¸ªå¹³å°ã
ä¸ãéç¨è¾¹çä¸é£é©æç¤º
â ï¸ æ¤æ å±éä½é£é©ä½ä¸çäºé¶é£é©ï¼æ«æå¨åºäºæ¦çï¼åå¨è¯¯æä¸æ¼æ¾ï¼å ³é®å¨ä½ä»éäººå·¥å¤æ ¸æäºæ¬¡ç¡®è®¤ã â ï¸ ç¬ç«å±æ¬èº«ä¹æ¯è¢«æ»å»é¢ï¼Sidecar/API éå身份认è¯ä¸éæµï¼é¿å æ¤æ å±è¢«ç»è¿ææ·¹æ²¡ã â ï¸ æ¶å强ç管è¡ä¸ï¼éèãå»çãæ¿å¡ï¼æ¶ï¼æ¤æ çç¥ä¸æ¦æªæ¥å¿åºå¯å®¡è®¡ãå¯åæº¯ï¼æ»¡è¶³åè§ççã
å «ãæ»ç»
ä¼ä¸ Agent çå®å ¨ï¼ä¸è¯¥æ£è½å¨æ¯æ®µä¸å¡ä»£ç éï¼èåºè¯¥å»ºæä¸æ¡ç¬ç«å®å ¨å±ï¼ç¨æ¤æ åå±ï¼æç¤ºæ³¨å ¥ / è¶ç± / è®°å¿å«æ / å·¥å ·æçºµï¼æé£é©æ¡å¨ Agent é»è¾ä¹å¤ã弿ºç LLM Guard è½è®©ä½ å è¡ä»£ç è·èµ·ç¬ç«ä¸é´ä»¶ï¼Orchard çå屿æ³ä¸ AprielGuard çç»ä¸åç±»åç»åºäºæ¶æä¸è¦çé¢çåç §ç³»ãè¥éæ°æ®ä¸åºåä¸çç¥ç»ä¸æ²»çï¼å¯è¿ä¸æ¥äºè§£ç¯æ Claw è¿ç±»æ¬å°åé¨ç½²æ¹æ¡ã
ä½ ç Agent ç°å¨æå 屿¤æ ï¼æ¯åå¨ä»£ç éï¼è¿æ¯ç¬ç«æå±å¯ç»ä¸æ²»çï¼æ¬¢è¿å¨è¯è®ºåºèèä½ è¸©è¿çåã
FAQ
Q1ï¼ç¬ç«å®å ¨å±ä¼å¢å å¤å°å»¶è¿ï¼ A1ï¼åå³äºå¯ç¨çæ«æå¨æ°é䏿¯å¦ GPU æ¨çãLLM Guard 主æ CPU æ¨çï¼å®æ¹ç§°ç¸æ¯ GPU å¯é约 5 åææ¬ï¼ç产ç¯å¢å»ºè®®åªå¯¹å¨è模åå¯ç¨å¿ è¦æ«æå¨ï¼å¹¶å¯¹é«å忥å£åæ¹éä¸ç¼åã
Q2ï¼æ¤æ åå±è¦å ¨é¨èªå»ºåï¼ææ²¡æç°æåºï¼ A2ï¼ä¸å¿ ä»é¶åãLLM Guardï¼Protect AIï¼MITï¼æä¾ 35+ è¾å ¥/è¾åºæ«æå¨ï¼å¼ç®±å³ç¨ï¼NVIDIA NeMo Guardrails æ é¿å¯¹è¯æµçº§æ¤æ ï¼AprielGuard æä¾ç»ä¸åç±»åºåº§ãèªå»ºåªå¨ä½ éè¦ç¹æ®çç¥æ¶è¡¥ä¸å±ã
Q3ï¼è®°å¿å«æé²æ¤å ·ä½é²ä»ä¹ï¼ A3ï¼é²çæ¯æ»å»è éè¿è¢«æ±¡æçææ¡£ãåå²å¯¹è¯æå·¥å ·è¿åå¼ï¼æææ¹å Agent çé¿æè®°å¿ä¸ä¸ä¸æï¼å³ä¸ä¸æå«æãè®°å¿ä¸æ¯ï¼ãå·¥ç¨ä¸ç¨ PII è±æ + ä¸ä¸æå®æ´æ§æ ¡éª + è®°å¿åå ¥ç½ååæ¥æ¶æã
Q4ï¼å·¥å ·æçºµé²æ¤æä¹åæææï¼ A4ï¼ä¸¤å±ç»åââè¾åºä¾§ç¨ Sensitive / MaliciousURLs çæ«æå¨æ¦æ³é²ï¼ç½å ³ä¾§ç¨å·¥å ·è°ç¨ç½ååéå¶ Agent åªè½è®¿é®é¢ç»è®°çå·¥å ·ä¸åæ°èå´ï¼è¶æè°ç¨ç´æ¥æç»ã
Q5ï¼å¼æºæ¹æ¡åä¼ä¸çº§æ¬å°åé¨ç½²æ¹æ¡æä¹éï¼ A5ï¼éç¨çäº§ç¨ LLM Guard ç±»ç¬ç«ä¸é´ä»¶å³å¯ï¼å½ä¼ä¸å¯¹æ°æ®ä¸åºåãç»ä¸çç¥ä¸å¿ãæéæ²»çä¸å®¡è®¡ççæç¡¬æ§è¦æ±æ¶ï¼å¯è¯ä¼°ç¯æ Claw è¿ç±»æ¬å°åé¨ç½²æ¹æ¡ï¼ææ¤æ 䏿²»çæ¶å£å°ä¸ä¸ªå¹³å°ã
Q6ï¼AprielGuard åæä»¬èªå·±åçä¸é´ä»¶æä»ä¹åºå«ï¼ A6ï¼AprielGuard æ¯å模åç»ä¸æ¤æ ï¼è¦ç 16 ç±»å®å ¨é£é© + å¤ç§å¯¹ææ»å»ï¼æ¯æ reasoning 模å¼å¯è§£éï¼ï¼éåå强åç±»åºåº§ï¼èªåä¸é´ä»¶æ¯ç¨æ«æå¨ç¼æåºçå¯è½å°æ¦æªå±ã两è å¯å å ï¼ä¸é´ä»¶å宿¶æ¦æªï¼AprielGuard å夿坹æçæ·±å±è¯å«ã
Aitishiku.com