Skip to content

模拟二面:Agent 身份与委托授权 ​

原创模拟题,非真实面经。对应 项目 B。建议 50 分钟,重点看信任边界,不考堆砌框架名字。

1. Agent 到底是谁? ​

面试官: 日志里写“Agent 调用了接口”够不够?

回答主线: 不够。要知道代表哪位用户、由哪个已认证应用执行、使用哪条委托、属于哪个任务、访问哪个资源。模型名称不是身份凭证,task_id 不是授权,工作负载身份也不是人的授权同意。

追问: 请求里传来的 user_id 和 actor_id 能信吗?

回答边界: 只能从受信凭证、服务端映射与已保存委托建立这些关系。普通请求字段不具备认证效力;日志 actor 字段也不能冒充 token 中的标准 act。

常见失分: “给每个 Agent 发一个 API Key 就解决了用户授权”。

证据: 一个任务的身份关联记录,以及伪造 actor 的拒绝用例。

2. 为什么 client_credentials 不等于代表用户? ​

回答主线: 它通常表达应用自己的授权,不能凭空推导某个员工的权限。委托调用需要受信的用户关系与授权限制;即使使用应用凭证访问受控下游,也必须如实描述为应用授权加业务委托校验,不能把自定义 user_id 说成标准 OBO。

追问: Token Exchange 后一定更安全吗?

回答边界: 交换协议是机制,不是完整授权策略。要验证发行者、受众、有效期和本地委托约束;禁止扩大到用户或应用本来没有的权限。Keycloak 的支持范围须按安装版本实验,不能把任意外部交换或 actor 支持当成默认能力。

常见失分: “换一次 token 就自动降权”“用管理员凭证,再传一个用户 ID 即可”。

证据: 支持/不支持矩阵与扩大 scope 的反例。参考:RFC 8693、Keycloak 交换说明。

3. 员工能读文档,Agent 就一定能读吗? ​

回答主线: 不一定。员工可能只授权助手读取某个目录;执行应用可能不允许使用该工具;文档也可能已被移出授权范围。实际判定是员工当前权限、委托、执行应用和工具资源策略的交集。

追问: 用户授权后离职了,但 token 还没过期怎么办?

回答边界: 校验当前成员与委托状态,按明确的撤权语义拒绝新操作;离线 JWT 仍可能在有效期内通过验证,必须说明在线检查、缓存陈旧时间与下游最终授权点。

常见失分: “创建任务时查过权限,后续都不用查”。

证据: 任务等待审批期间撤权的测试,以及最终执行点的拒绝记录。

4. 为什么不能把拿到的 token 直接透传 MCP 下游? ​

回答主线: token 的目标受众决定谁能接受它,接受后再转发不等于获得正确的下游授权。工具服务验证面向自己的凭证,下游访问使用独立授权链路;模型和检索内容都不能接触敏感令牌。

追问: 工具返回 401,让模型重新生成 token 行吗?

回答边界: 不行。模型不能产生有效身份凭证。凭证续期由受控身份组件处理;确认失效或撤权时要求重新认证/授权,不让模型绕过。

常见失分: “都是公司内部服务,audience 无所谓”。

证据: 错受众拒绝、日志脱敏、模型请求内容检查。依据:MCP 安全实践。

5. 用户点了确认,为什么执行前还要检查? ​

回答主线: 审批后参数可能变化,权限可能撤销,资源版本可能更新,审批可能过期。绑定规范化动作参数、目标资源、委托版本与有效期,执行前重验;审批人必须有审批资格,Agent 不能自批。

追问: 校验后、真正写入前又撤权呢?

回答边界: 这是 TOCTOU。自有工具在最终事务内检查版本并提交操作;跨服务不能靠一句“再查一次”消除竞争,必须说明下游条件写入、可接受窗口与已提交动作的处理规则。不承诺撤权能撤回已经成功的业务动作。

常见失分: 只保存 approved=true;每次重试都用不同幂等键。

证据: 改参、资源版本改变、撤权与执行竞争三类用例。

6. 提示注入能靠系统提示词解决吗? ​

回答主线: 提示词可以引导模型,但不能作为最终授权边界。文档和工具输出按不可信数据处理;模型只能提出注册工具动作,网关校验参数、权限与审批,敏感数据限制输出范围。允许的读操作也有数据外发风险,所以还要控制目标地址和可返回内容。

追问: 越权动作都被拦了,是不是模型安全了?

回答边界: 只能证明已测策略拦截了对应动作;仍可能错误总结、泄露被允许但不该输出的内容,或出现未覆盖攻击。分别评估授权正确性、输出质量和泄露风险。

常见失分: “设置 temperature=0 就不会被攻击”“测试全过代表绝对安全”。

证据: 固定恶意文档、候选工具参数、网关拒绝结果;不必让真实模型每次稳定触发才能测策略。

7. 你怎么证明做的是 Agent,而不是普通接口? ​

回答主线: 明确实际实现层级:固定状态机和工具桩只证明执行与授权链路;接入真实模型后,模型根据任务选择动作并消费工具反馈,才验证对应 Agent 行为。固定工作流仍有价值,不必为了叫 Agent 引入不可控的自主循环。

追问: 为什么不做多 Agent?

回答边界: 业务只有检索、草稿、审批与创建工单,单 Agent 足够;多 Agent 增加身份传递、重复执行与评估成本。除非出现可度量的独立职责与收益,否则不加。

常见失分: 把离线桩测试说成真实模型成功率;把框架名称当作架构理由。

证据: 分层测试报告,明确哪些是桩、哪些是真实模型调用。

评分 ​

每题 0–3 分,共 21 分,仅作训练:概念错误 0、名词正确 1、边界清楚 2、边界加可复现证据 3。优先修正三个危险答案:信任模型传来的身份、把 token 任意透传、认为审批永久有效。

下一轮:故障与系统设计。