根据提示词构建环境¶
预期成果¶
rea environment-build 从一次捕获构建一个捆绑包,但一个被要求“为这个应用构建一个环境”的智能体仍然无法通过 REA 的 MCP 服务器完成该任务。浏览器场景只能通过 UI 或 goto GET 到达应用的 API,因此要记录环境所服务的写入,就必须为每个表单编写脚本,而且也没有用于写入捆绑包的 MCP 工具。没有任何信息告诉智能体如何记录一个状态可以从中学习写入的会话,或何时停止记录。
request 场景动作会通过页面自身的 fetch 发送一个同源请求,因此场景可以先用 UI 登录,然后携带会话的 cookie 以及应用自身请求所发送的 CSRF 或 bearer 值来调用应用的 API(包括写入)。export_environment_bundle MCP 工具会像 environment-build 一样,从捕获的 Evidence 构建捆绑包。一份技能参考文档会引导智能体从提示词走到捆绑包:映射、记录、检查覆盖、按原因重录、导出并交接。
要求¶
- 一个
request步骤会指定一个方法(GET、HEAD、POST、PUT、PATCH、DELETE)、start URL 源上的路径、有序的查询条目、标头、可选的 JSON 请求体以及可选预期状态码。校验会拒绝以下情况,并将其作为该步骤路径上的字段问题:解析到另一个源的路径、GET或HEAD上的请求体、3xx 预期状态码、页面fetch无法设置或 Chrome 会丢弃的标头名称(User-Agent)、重复给出的标头名称、字面值和前缀中的换行符或控制字符,以及 URL 解析器拒绝的路径。 - 标头值可以是字面量、声明的机密、浏览器为请求 URL 持有的 cookie,或起始源上的本地存储值;本地存储值可选地通过 JSON 指针读取,并带有可选前缀。本地存储值仅在页面位于起始源上时才会被读取。从页面读取的值在读取后所生成的记录中会像声明的机密一样被脱敏,无论其存储形式还是发送形式都是如此;再次读取的值会保留其第一个标记,冲突的标签绝不会取消对较早值的脱敏,长度短于 8 个字符的值也不会被脱敏。
- 请求通过页面的
fetch使用同源凭据发出,从位于起始源上的页面发起(发送时会在页面内再次检查),不跟随重定向,并在响应被完整读取后完成,不保留其响应体。重定向、expected_status之外的状态码、网络错误或步骤超时都会使步骤失败;后续步骤会像其他动作一样被取消。页面只会在步骤截止时间之前发送请求,该截止时间以绝对时间形式提供给页面,并且页面只会在被交给请求后的一秒内发送;如果页面繁忙并稍后才开始,则不会发送任何内容,而在步骤既未取消也未超时的情况下,步骤会再次移交请求。如果页面开始其请求之前步骤已被取消或超时,则不会发送任何内容,除非页面在被交给请求后的一秒内启动了该请求。如果浏览器的时钟快于宿主机时钟,则步骤失败。该步骤的网络事件归属于该步骤。 - 带有 request 步骤的捕获会在限制项中说明这一点。没有 request 步骤的场景在校验、运行和记录方面与之前完全一致。
export_environment_bundle接受保留的捕获 Evidence 或捕获 Evidence 文件、一个不存在但其父目录存在的绝对输出目录,以及构建的名称、模板规则、包 tarball 和 dry run。它从相同的 Evidence 字节写入environment-build会写入的捆绑包(保留的 Evidence 以--format json序列化即可得到这些字节),并返回相同的报告,该报告通过其输出 schema 校验。它会拒绝已存在的目录(无论空与否)、没有父目录或相对路径的目录、未知的 Evidence、未命名的 loopback 捕获和重复的规则;拒绝时不写入任何内容。如果堆内存余量不足,保留的 Evidence 会在序列化之前被拒绝,正如 Evidence 文件会在读取之前被拒绝一样。environment-build是它的 CLI 命令。- 技能参考文档
references/environments.md随技能一起安装,并从 SKILL.md 路由。它仅涵盖一次性实例、来自环境变量的凭据、状态所需的记录规则、覆盖情况、停止规则、交接,以及当服务器分配 id 时如何按 id 访问对象:调用方选择的 id、第二个场景或 UI。 - 对于记录并非全部带时间戳的捕获(包括每一个浏览器场景捕获),覆盖情况会说明状态无法学习写入时钟。
- 停止规则:对于记录缺口(
no-state-target、no-observation、unconfirmed、incomplete-entities),最多重新记录一次被扣留的写入;对于unexplained-change和no-call,重录一次;对于应用行为(side-effect、contradicted、body-unusable),则立即停止。
非目标¶
- 不支持跨源请求、表单或 multipart 请求体,也不支持任意脚本动作。
- 不会追溯性脱敏 request 步骤读取的值:在该步骤之前记录的登录响应会保留其返回的 token,这与现有捕获行为一致。
- 不包含应用启动、种子数据植入或重置,也不发布捆绑包。
- 不改变任何视图所推导的内容或任何环境所提供的内容。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea