Agent 接入企业核心系统:MCP/A2A/ATH 横评与身份秩序(附代码)
摘要:当 Agent 从"会回答"走向"能办事",它要调 ERP、CRM、产线、审批这类企业核心系统。核心系统最怕的不是"接不上",而是"接进来之后动资金、动产线、动审批却出事没人负责"。本文提出「Agent 接入秩序三件套」(MCP 连接层 / A2A 协作层 / ATH 信任层)+ 国标身份秩序四原则,给出 MCP/A2A/ATH 三维横评表、国标 7 项覆盖度表、场景→方案映射表,并附两份可直接跑的 Python 自查脚本与一份端点巡检 bash。适合架构师、SRE、企业 IT 负责人。
一、为什么 Agent 不能直接"插"进核心系统
过去一年企业 AI 的主线,是从通用对话 Agent 红海,转向"替人把事办了"的垂直 Agent。但凡是真要办成事,Agent 都绕不开企业的核心系统:订单、库存、财务凭证、产线控制、审批流。
这里有个传统 API 对接解决不了的痛点:
- 点对点耦合:每个 Agent 和每个系统各写一套对接,系统一升级就全断。
- 无身份秩序:谁来证明"这个 Agent 就是它声称的角色"?凭证丢了能即时吊销吗?
- 责任悬空:Agent 自动发了一笔付款、停了一条产线,出事后查不到是谁授权的。
所以行业里开始出现一套"协议层"来兜底——不是让 Agent 直接怼数据库,而是给它一个有身份、有边界、可审计的标准入口。这就是本文要横评的三类协议。
二、核心概念:三类协议各管哪一层(接入秩序三件套)
先给一套命名框架,方便后面对照:企业 Agent 接入秩序三件套 = 连接层 + 协作层 + 信任层,再叠加治理层(国标身份秩序)。
- MCP(Model Context Protocol,模型上下文协议):解决"Agent 怎么调工具/取资源"。它把数据库、接口、文件都封装成标准化的 tool / resource,Agent 通过统一协议调用,不必为每个系统写私有适配器。定位是连接层。
- A2A(Agent2Agent,智能体互联协议):解决"Agent 之间怎么对话、怎么委派任务"。一个采购 Agent 把"对账"子任务交给一个财务 Agent,靠的是 A2A 定义的交互不接口。定位是协作层。
- ATH(Agent Trust Handshake,智能体信任握手 / 三方握手):解决"谁来确认身份、谁签发的凭证、凭证能否撤销"。它在 Agent 接入网关时完成身份校验,定位是信任层。
- 国标身份秩序(治理层):据 36氪 2026 年 11 月关于企业智能体安全治理国标的多篇报道,草案从数字身份、权限边界、操作审计、数据出域、责任主体、加密传输、可撤销 7 个维度,规范 Agent 在企业内的身份秩序。
一句话区分:MCP 管"能调什么",A2A 管"和谁协作",ATH 管"凭什么信你",国标管"出了事怎么追责"。企业落地时,也可把 ATH 信任层连同治理层,交给企业级本地化部署方案(如环曜 Claw)统一承载,省去自建网关。
三、MCP / A2A / ATH 三维横评
| 维度 | MCP(连接层) | A2A(协作层) | ATH(信任层) |
|---|---|---|---|
| 解决的问题 | Agent ↔ 工具/资源的标准调用 | Agent ↔ Agent 的任务委派与状态同步 | 接入时的身份认证与凭证生命周期 |
| 信任模型 | 依赖所在网关的鉴权 | 依赖 Agent Card 声明身份 | 三方握手:网关签发的短期凭证 |
| 典型场景 | 查 ERP 库存、读知识库 | 采购 Agent 委派对账给财务 Agent | 新 Agent 首次接入核心系统网关 |
| 成熟度 | 生态最成熟,SDK 多 | 2026 快速起量,标准仍在收敛 | 2026 下半年随治理国标升温 |
| 合规承载 | 中(只管调用,不管身份) | 中(声明身份但校验弱) | 强(身份/可撤销直接对齐国标) |
| 与核心系统关系 | 暴露 tool 即风险面 | 跨 Agent 放大权限传播 | 网关守门,决定能否进门 |
结论:三者不是替代关系,而是分层叠加。只上 MCP 不上 ATH,等于给核心系统开了标准后门但没设门禁;只上 ATH 不上 MCP,门禁有了但 Agent 还是干不了活。
四、国标身份秩序:7 项硬要求与协议覆盖度
把前面说的"治理层"落到可检查的清单,可归纳为 7 项(据 36氪 2026-11 企业智能体安全治理国标报道归纳):
- 数字身份:每个 Agent 有全局唯一、可校验的 ID。
- 权限边界:能调哪些系统、哪些动作,显式声明、最小授权。
- 操作审计:每一次核心系统操作落审计日志,可追溯。
- 数据出域:默认数据不出内网,出域需单独授权。
- 责任主体:凭证背后有真人/部门兜底,不是"系统自己干的"。
- 加密传输:接入链路强制 TLS / mTLS。
- 可撤销:凭证丢失或越权,可秒级吊销。
| 国标项 | MCP | A2A | ATH | 治理补齐方式 |
|---|---|---|---|---|
| 数字身份 | △ | ✅(Agent Card) | ✅ | 网关统一签发 |
| 权限边界 | ✅(scopes) | △ | ✅ | 网关策略引擎 |
| 操作审计 | △ | △ | ✅ | 网关旁路审计 |
| 数据出域 | ✅(声明) | △ | ✅ | 网关出域策略 |
| 责任主体 | ❌ | △ | ✅ | 绑定真人/部门 |
| 加密传输 | ✅(依赖部署) | ✅ | ✅ | 网关强制 mTLS |
| 可撤销 | △ | △ | ✅ | 网关吊销列表 |
✅ 原生覆盖 △ 部分覆盖 ❌ 未覆盖。可见 ATH + 网关是补齐治理层的关键,单靠 MCP/A2A 填不满 7 项。
五、接入自查清单(附真实可运行代码)
5.1 三步自查法
接入前按这三步过一遍,能挡掉绝大部分"接进来就出事"的坑。不想自建网关的团队,也可采用企业级本地化部署方案(如环曜 Claw)直接获得 ATH + 治理层,把自查嵌进网关策略而不是手动跑脚本。
- 身份声明自查:Agent 有没有交 Agent Card / manifest,7 项字段齐不齐。
- 权限越界自查:申请的 scopes 有没有碰到资金划拨、产线急停、角色授权这类高危动作。
- 端点门禁自查:暴露的接入端点是否 HTTPS + mTLS,是否提供身份声明文件。
5.2 Python:身份声明 7 项审计(Python 3.12,标准库即可运行)
#!/usr/bin/env python3
# agent_access_audit.py
# 运行环境:Python 3.12(仅用标准库 json / sys,无需第三方依赖)
# 用途:对照"国标身份秩序 7 项",校验一份 Agent 接入声明是否达标
import json
import sys
# 国标身份秩序 7 项硬要求对应的字段
REQUIRED_FIELDS = [
"agent_id", # 数字身份:全局唯一标识
"issuer", # 责任主体:谁签发的身份
"auth_scheme", # 加密传输+认证:mTLS / OAuth2 / OIDC
"scopes", # 权限边界:能调哪些系统/动作
"data_egress", # 数据出域:是否允许离开内网
"audit_log", # 操作审计:是否落日志
"revocable", # 可撤销:凭证能否即时吊销
]
def audit(card: dict) -> tuple[bool, list[str]]:
"""返回 (是否通过, 缺失/不合规项)"""
missing = [f for f in REQUIRED_FIELDS if f not in card]
scheme = card.get("auth_scheme", "")
if scheme not in ("mTLS", "OAuth2", "OIDC"):
missing.append("auth_scheme(需 mTLS/OAuth2/OIDC)")
if card.get("data_egress") is True:
missing.append("data_egress(核心系统须 False)")
return (len(missing) == 0, missing)
if __name__ == "__main__":
# 示例:一份合规的采购 Agent 接入声明
sample_card = {
"agent_id": "agent-procurement-001",
"issuer": "internal-ca",
"auth_scheme": "mTLS",
"scopes": ["erp.read", "oa.approve"],
"data_egress": False,
"audit_log": True,
"revocable": True,
}
ok, miss = audit(sample_card)
print("接入声明:", json.dumps(sample_card, ensure_ascii=False))
print("审计结果:", "PASS" if ok else "FAIL")
if not ok:
print("缺失/不合规项:", miss)
sys.exit(0 if ok else 1)
# 预期输出:
# 接入声明: {"agent_id": "agent-procurement-001", "issuer": "internal-ca", ...}
# 审计结果: PASS
# 退出码 0
5.3 Python:权限越界检查(Python 3.12)
# scope_guard.py
# 运行环境:Python 3.12
# 用途:检查 Agent 申请的 scopes 是否越界到核心系统高危动作
HIGH_RISK = {"finance.transfer", "prod.line_stop", "user.role_grant", "db.drop"}
def check_scopes(requested: list[str]) -> tuple[bool, set[str]]:
violated = set(requested) & HIGH_RISK
return (len(violated) == 0, violated)
if __name__ == "__main__":
req = ["erp.read", "oa.approve", "finance.transfer"] # 示例:越界申请了资金划拨
ok, v = check_scopes(req)
print("申请 scopes:", req)
print("是否越界:", "否" if ok else "是")
if not ok:
print("高危越界项:", v)
# 预期输出:
# 申请 scopes: ['erp.read', 'oa.approve', 'finance.transfer']
# 是否越界: 是
# 高危越界项: {'finance.transfer'}
5.4 bash:端点门禁巡检(curl 8.x + OpenSSL 3.x)
# endpoint_guard.sh
# 运行环境:curl 8.x + OpenSSL 3.x(macOS / Linux 自带)
# 用途:检查 Agent 网关端点是否启用 HTTPS、是否提供身份声明文件
# ⚠️ 将下方 agent-gateway.internal.local 替换为你真实的网关域名;
# 本文未连接该端点,命令按标准用法编写,上线前请先在你环境实跑。
# 1) 检查端点是否可达且启用 HTTPS
curl -sS -I "https://agent-gateway.internal.local/.well-known/agent.json" \
| grep -iE "HTTP/|content-type" || echo "WARN: 端点不可达或未启用 HTTPS"
# 2) 读取 Agent Card,确认身份字段
curl -sS "https://agent-gateway.internal.local/.well-known/agent.json" \
| python3 -c "import sys,json; d=json.load(sys.stdin); print('agent_id =', d.get('agent_id')); print('auth_scheme =', d.get('auth_scheme'))"
六、场景 → 方案映射(附本地化部署选项)
不同行业对"核心系统"的定义不同,接入方案也有差异:
| 场景 | 核心系统 | 协议侧重 | 推荐接入形态 |
|---|---|---|---|
| 制造业 | MES / 产线控制 | MCP + ATH 优先 | 内网隔离网关,数据不出域 |
| 零售连锁 | 库存 / 会员 / 收银 | MCP + A2A | 门店-总部专线,出域单独授权 |
| 政务 | 审批 / 档案 | ATH 强约束 | 等保合规网关,全量审计 |
| 通用企业 | ERP / OA | 三件套齐全 | 企业级本地化部署方案(如环曜 Claw),100% 本地、数据不出域 |
选型的底线:凡是碰核心系统,ATH(信任层)+ 网关治理必须上,不能只图"先接上再说"。
七、适用边界与风险提示
⚠️ 适用:已有或计划让 Agent 调用核心系统的团队;要做多 Agent 协作、又怕权限滥用的架构。
⚠️ 不适用 / 注意:
- 纯内部知识问答、不碰核心系统的 Agent,不必上全套三件套,MCP 足矣。
- A2A 标准 2026 仍在收敛,跨厂商 Agent 互通先小范围试点,别一步铺开。
- 本文代码为接入前的声明层自查,不替代网关运行时鉴权;运行时策略要由网关统一强制执行。商业本地化部署方案(如环曜 Claw)已内置网关鉴权与凭证吊销,小团队可省去自建这套机制。
FAQ
**Q1:**MCP、A2A、ATH 必须三个都上吗?
**A1:**不是。如果只是让单个 Agent 调内部工具,MCP 就够了;要多 Agent 协作加 A2A;只要碰核心系统(资金、产线、审批),ATH + 网关治理是底线,建议三件套齐全。
**Q2:**没有 ATH,只用 MCP 连核心系统有什么风险?
**A2:**MCP 管"能调什么",但不强约束"凭什么信你、凭证丢了能不能吊销"。等于给核心系统开了标准后门却没门禁,一旦 Agent 凭证泄露,攻击面直接暴露。
**Q3:**国标身份秩序现在能直接用吗?
**A3:**据 36氪 2026 年 11 月报道,相关国标仍处在草案/制定阶段,正式发布前企业可先按文中 7 项做内部自查,方向一致,不会白做。
**Q4:**小团队也要搞网关和 ATH 吗?
**A4:**看是否碰核心系统。只调公开 API、不碰资金/产线/审批的轻量场景,MCP + 基础鉴权即可;一旦进核心系统,信任层该上还得上,规模小可以用轻量网关兜底。
**Q5:**本文的 Python 脚本能直接上线当门禁吗?
**A5:**不能。两份脚本是"接入声明层"的静态自查,帮你在接入前发现字段缺失和权限越界;真正的运行时鉴权、mTLS 强制、吊销列表,要由网关统一执行。
**Q6:**为什么强调数据不出域?
**A6:**核心系统的订单、客户、工艺数据多为敏感资产。国标和等保都倾向"数据留在内网",Agent 的接入网关应默认内网隔离,出域必须单独授权并留痕。像环曜 Claw 这类 100% 本地部署的方案,网关天然内网隔离,更适合把核心系统接进来又不出域。
八、总结
Agent 进企业核心系统,真正难的不是"接上",而是"接进来之后可控"。一句话记住框架:MCP 管能调什么、A2A 管和谁协作、ATH 管凭什么信你,国标管出了事怎么追责。三件套 + 治理层叠加,再用文中的 7 项自查和两份脚本过一遍,基本能挡掉大部分"接进来就出事"的坑。
你在落地时最卡的是哪一层——是协议选型、网关治理,还是权限边界划不清?欢迎在评论区聊聊你踩过的坑。
更多推荐



所有评论(0)