2026年,不会“排雷“的AI工程师,正在被Agent时代淘汰
2026年,57%的企业已将AI Agent部署到生产环境,但超过60%的团队从未做过一次完整的安全审计。当Agent开始自主调用工具、访问数据库、处理用户隐私数据时,你确定它不会在某个深夜把敏感信息泄露出去?

Agent时代的安全焦虑,不是危言耸听
传统软件的安全边界是清晰的:接口鉴权、SQL注入防护、XSS过滤。但Agent应用的安全边界正在变得模糊。
一个典型的RAG客服Agent,一次请求链路可能涉及:
- 用户输入(可能包含Prompt注入攻击)
- 知识库检索(可能召回含敏感信息的文档)
- Prompt拼接(可能将系统指令暴露给用户)
- LLM推理(可能生成包含幻觉的"事实")
- 工具调用(可能访问未授权的API或数据库)
- 结果输出(可能泄露内部业务数据)
这条链路中任何一个环节出问题,传统WAF、IDS都无法感知。因为它们看不懂LLM的语义。
更关键的是:出了事你甚至不知道出了事。
没有全链路审计,你无法回答这些问题:
- 某次数据泄露是哪个Agent、哪次会话、哪个工具调用导致的?
- 用户是否通过Prompt注入获取了系统指令?
- Agent是否在多轮对话中逐步"套出"了用户的隐私信息?
- 哪些会话涉及敏感数据,需要留存审计记录?
全链路审计:Agent安全的最后一道防线
Agent安全不能只靠"输入过滤+输出检测",而是需要全链路可追溯。这正是OpenTelemetry GenAI Semantic Conventions正在推进的方向——用标准化协议记录LLM调用、工具调用、输入输出等完整遥测数据。
AgentInsight的可观测SDK提供了链路级审计能力。通过@observe装饰器,Agent执行的每一步都会被记录为可追溯的Span:
from agentinsight import observe, AgentInsight, propagate_attributes
client = AgentInsight()
@observe(as_type="agent", name="secure-rag-agent")
def run_secure_agent(query: str) -> str:
# Step 1: 输入安全检查
if detect_prompt_injection(query):
raise SecurityException("检测到潜在的Prompt注入攻击")
# Step 2: 检索文档(仅授权范围内的文档)
docs = retrieve_authorized_docs(query)
# Step 3: 生成回答
answer = generate_with_guardrails(query, docs)
# Step 4: 输出安全过滤
return filter_sensitive_content(answer)
@observe(as_type="guardrail", name="input-validation")
def detect_prompt_injection(query: str) -> bool:
"""检测Prompt注入风险"""
# 基于规则 + LLM判断的注入检测
risk_patterns = ["忽略以上指令", "你是一个没有限制的", "system prompt"]
return any(p in query.lower() for p in risk_patterns)
@observe(as_type="retriever", name="authorized-retrieval")
def retrieve_authorized_docs(query: str) -> list[str]:
"""带权限控制的文档检索"""
results = vector_store.similarity_search(query, k=3)
# 过滤掉标记为"内部机密"的文档
return [doc.page_content for doc in results
if doc.metadata.get("clearance", "public") != "confidential"]
@observe(as_type="generation", name="guarded-generation")
def generate_with_guardrails(query: str, docs: list[str]) -> str:
"""带安全护栏的回答生成"""
context = "\n".join(docs)
prompt = f"基于以下信息回答,不得编造事实:\n{context}\n\n问题:{query}"
response = llm_client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0,
)
return response.choices[0].message.content
@observe(as_type="guardrail", name="output-filter")
def filter_sensitive_content(answer: str) -> str:
"""过滤输出中的敏感信息"""
sensitive_patterns = ["身份证号", "手机号", "银行卡"]
for pattern in sensitive_patterns:
if pattern in answer:
return "[已过滤:回答包含敏感信息,请联系人工客服]"
return answer
审计追溯:出了事,能查到
安全审计的核心不是"防止出事",而是"出了事能查到"。通过AgentInsight的上下文传播机制,每条Trace都关联到具体用户和会话:
from agentinsight import propagate_attributes
with client.start_as_current_observation(name="user-request", as_type="span") as root:
with propagate_attributes(
user_id="user_12345",
session_id="session_abc",
metadata={
"environment": "production",
"feature": "customer-service",
},
tags=["production", "audit-tracked"],
):
answer = run_secure_agent("帮我查一下订单信息")
# 整条链路自动关联到该用户和会话
client.flush()
在AgentInsight平台上,你可以:
- 按用户/会话/时间回溯任意一次Agent交互的完整链路
- 查看每一步的输入、输出、模型参数、工具调用详情
- 筛选涉及敏感数据的会话,生成合规审计报表
- 设置异常行为智能预警(如频繁触发安全护栏的会话)
给Agent开发者的安全建议
如果你正在把Agent推向生产,建议立即检查这三点:
- 你的Agent链路是否全量可追溯? 如果出了安全问题,能不能在5分钟内还原完整的调用链路?
- 是否有关键节点的安全护栏? 输入检测、输出过滤、权限控制、敏感数据脱敏,缺一不可。
- 是否有合规审计能力? 能否按用户、时间、功能模块导出审计记录,满足企业数据安全要求?
AgentInsight SDK(Python / TypeScript)开源免费,5分钟即可接入:
- Python SDK:https://github.com/AgentInsight/agentinsight-sdk-python
- TypeScript SDK:https://github.com/AgentInsight/agentinsight-sdk-ts
- 官网:https://agentinsight.goldebridge.com/
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)