🪪 Agent Identity 详解
2026热门 安全 NIST标准
一句话理解:Agent Identity 就像给每个AI Agent发身份证——不再是一群人共用一个门禁卡,而是每个Agent都有自己的身份、权限和审计记录。谁干了什么,一目了然。
🤔 为什么 Agent Identity 突然重要了?
凌晨2点13分,你的生产Agent突然删除了数据库里的三张表。你冲进日志一看,发现是"agent_service_account"干的——但公司里有17个Agent都用这个账号。你根本不知道是谁干的,就像17个人共用一把钥匙,门开了你不知道谁进的。
这就是2026年之前绝大多数企业的现状:所有AI Agent共享同一个服务账号(Service Account),没有独立身份,没有细粒度权限,没有审计追溯。
2026年2月5日,NIST的National Cybersecurity Center of Excellence(NCCoE)发布了一份概念论文——"Accelerating the Adoption of Software and AI Agent Identity and Authorization"。翻译成人话就是:别再让所有Agent共用一个账号了,要出事的。
🏗️ Agent Identity 的三层模型
❌ 旧模式:共享身份
- 所有Agent共用一个Service Account
- 无法区分是谁在执行操作
- 一个Agent出事=所有Agent出事
- 无法实施最小权限原则
- 审计日志全是一个用户
✅ 新模式:独立身份
- 每个Agent拥有独立身份凭证
- 操作可追溯到具体Agent
- 一个Agent被攻破≠全部沦陷
- 每个Agent只有必需的最小权限
- 审计日志精确到Agent粒度
Identity 三层架构
- Layer 1: Authentication(身份验证)——你是谁?Agent用什么证明自己的身份?API Key、OAuth Token、mTLS证书、还是Agent专用的Identity Token?
- Layer 2: Authorization(授权)——你能干什么?这个Agent有权访问哪些资源?能执行哪些操作?调用哪些工具?
- Layer 3: Audit(审计)——你干了什么?每个操作的完整记录,包括谁调的、调了什么、结果如何、什么时间。
🔐 Agent Identity 的关键技术
1. Agent Identity Token (AIT)
类似人的身份证,AIT是Agent的数字身份凭证。包含:
- Agent ID(全局唯一标识符)
- Agent Role(角色:researcher/analyst/writer等)
- Issuer(签发方:你的组织/平台)
- Scope(权限范围:可以访问什么)
- Expiry(有效期:Token何时过期)
2. Delegation Chain(委托链)
当Agent A调用Agent B时,身份通过委托链传递:
# 委托链示例
User(诗中) → Agent_A(researcher) → Agent_B(analyst)
# 每一层都保留了原始发起人的身份
# Agent_B执行操作时,系统知道:
# - 直接调用者:researcher
# - 原始发起人:诗中
# - 委托路径:user → researcher → analyst
3. Policy-as-Code(策略即代码)
权限策略用代码定义,版本管理,可审计:
# Agent权限策略示例
policies:
researcher_agent:
allowed_tools: [web_search, web_fetch, read]
denied_tools: [write, exec, delete]
max_token_budget: 50000
allowed_domains: ["*.wikipedia.org", "*.arxiv.org"]
time_restriction: "06:00-23:59 CST"
writer_agent:
allowed_tools: [write, edit, feishu_doc]
denied_tools: [exec, delete]
max_token_budget: 100000
requires_approval_for: [publish, send_message]
admin_agent:
allowed_tools: [ALL]
denied_tools: []
max_token_budget: UNLIMITED
requires_human_approval: true # 管理员Agent必须有人类审批
🤖 OpenClaw 中的 Agent Identity 实战
1. Agent配置中的身份定义
# OpenClaw Agent 身份配置
# 每个Agent有独立的身份和权限边界
# 通过 Gateway 配置 Agent 身份
gateway(action="config.patch", raw=JSON.stringify({
agents: {
"miaoquai-content-agent": {
model: "claude-3.5-sonnet",
description: "内容创作Agent",
# 身份与权限
tools: ["write", "edit", "web_search", "read"],
# toolsAllow 限制可用工具 = 最小权限
},
"miaoquai-monitor-agent": {
model: "gpt-4o-mini",
description: "监控Agent",
tools: ["web_search", "web_fetch", "read"],
# 只读权限,不能写不能删
}
},
# 全局安全策略
security: {
requireApprovalFor: ["delete", "exec:elevated"],
maxConcurrentAgents: 5
}
}))
2. Sub-Agent 的身份隔离
# OpenClaw sub-agent 天然具备身份隔离
# 每个 sub-agent 运行在独立的 session 中
# 研究Agent - 只有搜索权限
sessions_spawn(
task="搜索AI Agent市场数据",
mode="run",
runtime="subagent",
# sub-agent 只能使用允许的工具
# 无法访问父session的敏感数据
)
# 运维Agent - 有执行权限但需要审批
sessions_spawn(
task="部署新版本到生产环境",
mode="run",
runtime="subagent",
# exec 需要人类审批 (/approve)
)
3. 审计追踪
# OpenClaw 天然的审计能力
# session_history 记录了完整的操作链路
# 查看某个session的完整操作记录
sessions_history(
sessionKey="agent-session-xxx",
includeTools=True, # 包含所有工具调用
limit=100
)
# 每条记录包含:
# - 谁(Agent ID / session key)
# - 何时(timestamp)
# - 做了什么(tool calls, model decisions)
# - 结果如何(tool outputs, model responses)
# - 消耗了多少(token usage, cost)
4. Elevated 执行:身份验证的最后一道防线
# OpenClaw elevated 执行 - 需要人类显式审批
# 这就是 Agent Identity 中的 Human-in-the-Loop 安全机制
exec(
command="rm -rf /var/www/miaoquai/old-backup/",
elevated=True # 触发人类审批流程
)
# 系统返回:
# ⚠️ 需要审批: rm -rf /var/www/miaoquai/old-backup/
# 请在聊天中输入 /approve 来批准此操作
# 人类审批后才会执行
# 审批记录永久保存在session历史中
⚡ 实施 Agent Identity 的建议
- 从今天开始,不要等:NIST标准已经出了,等到出事再补就晚了
- 一个Agent一个身份:就像一个员工一个工号,别再搞共享Service Account了
- 最小权限原则:Agent只需要完成任务的最低权限,多了就是风险
- 委托链必须完整:Agent A调Agent B时,B必须知道是A在调它,以及A是受谁的委托
- 定期轮换凭证:API Key不是一辈子的,定期轮换降低泄露风险
- 审计日志不可篡改:操作记录是安全事件调查的基础,必须保护