eve 扩展
@agent-browser/eve 将完整的 agent-browser 工具集挂载到 eve Agent 中。这些工具在 Agent 沙箱内运行 agent-browser,因此浏览器进程、下载文件、截图和状态都不会进入 Next.js 运行时。
安装¶
eve 是 peer dependency,在 eve 应用中应该已经存在。下方展示的沙箱预安装辅助工具随同一个包一起提供,因此无需额外安装。
挂载¶
在 agent/extensions/ 下创建扩展挂载。文件名即工具命名空间。
// agent/extensions/browser.ts
import browser from "@agent-browser/eve";
export default browser({
allowedDomains: ["example.com", "*.example.com"],
maxOutputChars: 50000,
});
Agent 会获得带命名空间的工具,例如 browser__open、browser__snapshot、browser__click、browser__fill、browser__find、browser__screenshot、browser__console 和 browser__network_requests。
沙箱引导¶
该扩展可以在首次使用工具时安装 agent-browser、Chromium 以及所需的 Linux 库。在生产环境中,请在 eve 沙箱模板中预先安装它们,以便会话启动时即为热状态。
// agent/sandbox.ts
import { agentBrowserRevalidationKey, installAgentBrowser } from "@agent-browser/eve/sandbox";
import { defineSandbox } from "eve/sandbox";
import { vercel } from "eve/sandbox/vercel";
export default defineSandbox({
backend: vercel({ resources: { vcpus: 2 } }),
revalidationKey: () => agentBrowserRevalidationKey(),
async bootstrap({ use }) {
const sandbox = await use();
await installAgentBrowser(sandbox);
},
});
配置¶
常见选项:
allowedDomains限制导航和子资源。contentBoundaries用边界标记包裹页面输出。maxOutputChars截断较大的页面输出。inlineScreenshots将截图作为 data URL 嵌入,供能够渲染它们的通道使用。autoInstall、installSpec、installBrowser和installSystemDependencies控制首次使用时的安装。session和sessionPrefix控制浏览器会话命名。binary指向沙箱内的agent-browser可执行文件。proxy配置浏览器代理的使用。
Agent 工作流¶
让 Agent 导航、快照,然后根据快照引用执行操作。类似 [ref=e12] 的快照引用会成为交互工具的 @e12 选择器。
阅读文章或文档时,优先使用 browser__read。对于应用,请在交互前使用 browser__snapshot,并在页面发生变化后重新快照。
安全¶
Cookie、存储和已保存的认证状态相关命令有意不通过扩展暴露,因为它们可能向模型泄露凭据信息。当你需要禁用某个工具、添加审批要求或提供应用特定的受保护工具时,请使用标准的 eve 扩展覆盖机制。
示例¶
参见 examples/eve,这是一个完整的使用了该扩展的 Next.js eve 应用。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser