真实面经题目 · 原创解析
Agent 沙箱运行上下文如何封装用户配置、能力定义和可执行工具?
这题考 Agent 沙箱运行上下文的封装方式,回答重点是用户配置、能力定义、权限边界、可执行工具、工作目录、环境变量和可观测状态如何统一管理。
我会把 Agent 沙箱运行上下文设计成一次任务执行的受控运行时对象。它至少包含用户和租户身份、任务 ID、会话状态、用户配置、模型配置、可用能力列表、工具 schema、权限策略、工作目录或文件快照、环境变量白名单、网络策略、资源限制、超时、审计 trace 和产物路径。加载时不能把所有全局能力都给 Agent,而是根据用户权限、任务类型和风险级别生成最小可用上下文。执行时模型只能通过上下文暴露的工具入口访问沙箱能力,工具调用前做 schema 和权限校验,调用后把结构化结果写回状态。安全上要隔离文件系统、网络、进程和密钥;可靠性上要支持快照、取消、恢复和清理。这样的上下文既是能力边界,也是审计和复现的依据。
Agent 沙箱不是一个随便运行代码的目录,而是一次任务的身份、配置、权限、工具、状态和资源边界。上下文定义了 Agent 能知道什么、能调用什么、能写哪里、能运行多久。
用户偏好、语言、输出格式、项目设置属于配置;文件访问、网络访问、密钥使用和危险命令属于权限。配置可以影响行为,权限决定能否执行,二者不能混在自然语言提示里让模型自行判断。
可执行工具应以 registry 形式进入上下文,包含名称、描述、输入输出 schema、权限需求、超时、幂等性和错误码。模型看到的是受控能力集合,调度器执行的是注册过的真实入口。
文件系统应使用工作目录或快照,环境变量只注入白名单,网络按域名或协议限制,CPU、内存、进程数和执行时间都有上限。任务结束后要清理临时文件、进程和敏感上下文。
工具结果、模型计划、错误、用户确认和中间产物都应写入运行状态。这样任务失败后可以复现,用户中断后可以恢复,人工审核也能看到 Agent 为什么做出某个动作。
每次上下文加载、工具调用、权限拒绝、文件写入、网络访问和取消都要进入 trace。没有审计的沙箱只是隔离容器,不能满足生产级排错、追责和安全治理。
配置表达用户希望 Agent 怎么做,权限决定 Agent 被允许做什么。权限必须由系统强制执行,不能交给模型通过提示词自律。
应尽量不直接暴露密钥。需要访问外部服务时,用受控代理、短期 token、权限范围和审计记录,避免模型或工具把密钥写入输出和日志。
保存输入、状态、文件快照、工具结果、模型步骤和错误原因。恢复时从稳定快照加载上下文,而不是重新让模型猜之前做过什么。
写回结构化运行状态,并附带调用参数、状态码、错误、耗时和关键输出摘要;必要的原始产物保存到受控路径。