60 秒回答模板

我会把 Agent 沙箱运行上下文设计成一次任务执行的受控运行时对象。它至少包含用户和租户身份、任务 ID、会话状态、用户配置、模型配置、可用能力列表、工具 schema、权限策略、工作目录或文件快照、环境变量白名单、网络策略、资源限制、超时、审计 trace 和产物路径。加载时不能把所有全局能力都给 Agent,而是根据用户权限、任务类型和风险级别生成最小可用上下文。执行时模型只能通过上下文暴露的工具入口访问沙箱能力,工具调用前做 schema 和权限校验,调用后把结构化结果写回状态。安全上要隔离文件系统、网络、进程和密钥;可靠性上要支持快照、取消、恢复和清理。这样的上下文既是能力边界,也是审计和复现的依据。

考点 最小上下文
难度 真实面经题
回答目标 讲清机制、训练与评估取舍

深入解析

01

运行上下文是执行边界

Agent 沙箱不是一个随便运行代码的目录,而是一次任务的身份、配置、权限、工具、状态和资源边界。上下文定义了 Agent 能知道什么、能调用什么、能写哪里、能运行多久。

02

用户配置要和权限分开

用户偏好、语言、输出格式、项目设置属于配置;文件访问、网络访问、密钥使用和危险命令属于权限。配置可以影响行为,权限决定能否执行,二者不能混在自然语言提示里让模型自行判断。

03

能力定义需要结构化注册

可执行工具应以 registry 形式进入上下文,包含名称、描述、输入输出 schema、权限需求、超时、幂等性和错误码。模型看到的是受控能力集合,调度器执行的是注册过的真实入口。

04

沙箱资源要最小化

文件系统应使用工作目录或快照,环境变量只注入白名单,网络按域名或协议限制,CPU、内存、进程数和执行时间都有上限。任务结束后要清理临时文件、进程和敏感上下文。

05

状态写回支持恢复

工具结果、模型计划、错误、用户确认和中间产物都应写入运行状态。这样任务失败后可以复现,用户中断后可以恢复,人工审核也能看到 Agent 为什么做出某个动作。

06

审计是上下文的一部分

每次上下文加载、工具调用、权限拒绝、文件写入、网络访问和取消都要进入 trace。没有审计的沙箱只是隔离容器,不能满足生产级排错、追责和安全治理。

易错点

  • 把沙箱上下文理解成一个 Prompt 字符串,忽略权限和资源边界。
  • 把用户偏好和系统权限混在一起,依赖模型自己遵守。
  • 暴露全量工具和环境变量,违反最小权限原则。
  • 工具没有 schema 和错误语义,调用失败后难以恢复。
  • 任务结束不清理临时文件、进程和敏感上下文。
  • 没有 trace 和快照,线上问题无法复现。

面试官追问

用户配置和系统权限为什么要分开?

配置表达用户希望 Agent 怎么做,权限决定 Agent 被允许做什么。权限必须由系统强制执行,不能交给模型通过提示词自律。

沙箱上下文里能放密钥吗?

应尽量不直接暴露密钥。需要访问外部服务时,用受控代理、短期 token、权限范围和审计记录,避免模型或工具把密钥写入输出和日志。

如何支持任务恢复?

保存输入、状态、文件快照、工具结果、模型步骤和错误原因。恢复时从稳定快照加载上下文,而不是重新让模型猜之前做过什么。

工具调用结果应该写回哪里?

写回结构化运行状态,并附带调用参数、状态码、错误、耗时和关键输出摘要;必要的原始产物保存到受控路径。