验证
在智能体工作时发现新的回归问题。
每当你保存文件或智能体完成一项任务,Panolayer 都会根据代码库各部分实际的组合方式来检查这项变更。它会查看发生变更的函数、调用这些函数的代码,以及每一处的预期。你能在数秒内看到什么被破坏了以及原因;未经你的批准,智能体无法将其工作合并到你的分支。
智能体将 getUser() 改为返回 null,而不是抛出异常。
它能编译通过,getUser 的测试也仍然通过,但那六处未经检查就读取 user.name 的地方,要等到预发布环境才会发现问题。
Verification Engine 如何运作
验证从关于你的代码唯一不会出错的东西出发——代码本身。
它基于从源码解析出的架构运行,因此了解每个函数、谁调用它以及它依赖什么。Panolayer 能区分新的回归和原本就存在的问题。借助持久记忆,你做出的每一项更正都会保留在项目中,因此你用得越多,验证就越好。
解析代码
推断出它的预期
检查每处更改
新回归与旧回归分开保留
01
从你的代码构建上下文
智能体只能看到分配给它的文件。Panolayer 会像编译器一样解析你的仓库,包括文件、模块、函数、类、导入以及完整的调用图。它知道 getUser() 在六个地方被调用,也确切知道每一处在哪里,因为它解析了符号,而不是由模型猜测。这与你在架构视图中浏览的是同一套架构。

02
推断代码的预期
借助 Panolayer 的持久记忆,规则会在多次运行之间保存,你可以添加自己的规则,也可以更正它推导错误的规则。

03
准确看到什么被破坏了
打开一个失败,你会看到相关函数、规则、实际发生的情况、位置,以及哪些调用方受到影响,并附上背后的证据。
在已完成相应设置的情况下,验证还可以运行你的测试、构建和类型检查,在浏览器中加载前端变更,并将截图与参考图像进行比较。

04
与基线比较
每个结果都会与变更之前的代码库进行比较,因此原本就存在的失败会一直标记为已有失败,你只需追查本次变更破坏了什么。
05
修复代码,或修正规则
如果代码有误,自己修复,或让 Panolayer Agent 以该失败及其受影响的调用方为上下文进行修复。如果规则有误,就更正它。无论哪种方式,结果都会再次经过验证。
未经你的批准,智能体无法将自己的工作合并到你的分支。Marketplace 智能体在容器中运行,无法访问你的主工作树。你 Mac 上的 CLI 智能体则通过指令加以约束。即使检查失败,你也始终可以 commit 并合并智能体的工作。
进一步了解构建常见问题
什么是规则?
关于一段代码应如何运行的一项预期,例如“返回一个用户或抛出异常,绝不返回 null”。Panolayer 从你的代码中推导出大部分规则,你也可以添加自己的规则。规则会持久保存,并在每次变更时运行。
我可以编写自己的规则吗?
可以。除了 Panolayer 从你的代码中推导出的规则,你还可以添加自己的规则。
规则有误时会怎样?
更正它。这项更正会被保留,该仓库今后的验证都会反映它。
验证有多快?
结果在数秒内返回,因此你无需离开当前任务,就能完成检查、修复、再检查。
验证何时运行?
在你保存分支上的文件时,以及智能体表示任务完成时。
我的代码会被发送给模型吗?
除非你进行同步或共享,否则你的仓库以及 Panolayer 为其建立的索引都保留在你的 Mac 上。使用模型的功能会将相关代码片段和提示词发送给你配置的服务商,并受该服务商条款的约束。
在安全页面了解更多它会阻止我合并吗?
它约束的是智能体,而不是你。未经你的批准,智能体无法将自己的工作合并到你的分支。你始终可以 commit 和合并。