Agent Sandbox 从零开始 · 3.0
第 15 / 34 节 · 面向零基础读者

第 13 章:一个可复述的系统设计

先写任务契约

在接入模型之前,用人话写出契约:“读取一份不超过规定大小的销售 CSV,离线计算,最多执行 30 秒,输出一个符合指定结构的 JSON。”契约为输入检查、权限配置、执行预算和结果验证提供共同依据。

模型可以生成分析代码,但控制器不能让模型自己决定全部边界。哪些目录可以挂载、哪些域名可访问、是否允许访问凭证,应来自可信配置和用户已授权的任务范围。

再分出三个阶段

准备阶段负责检查输入并选择固定环境;执行阶段在最小权限下完成计算;交付阶段检查产物并决定是否给用户下载。如果需要发布到外部系统,把发布作为独立动作处理。

每个阶段都需要明确失败后的处理。例如准备失败不创建环境,执行失败保留必要诊断但清理进程,交付失败不把半成品误标成成功。

最后验证几条关键性质

输入无法被修改、未经允许不能访问外部网络、运行不会无限持续、超时后环境被清理、错误报告不会误用旧文件。这些是从任务契约推出来的检查,和第 9 章的实验一一对应。

真实系统还应依据威胁模型测试跨用户数据隔离、凭证边界和控制器接口。测试能发现问题,但不能用几个成功案例证明对所有攻击都安全。评估隔离强度需要结合配置、机制和实际部署环境。

本书包含示例与资料导读;验证范围和来源见附录。