跳转至

eve 扩展

@agent-browser/eve 将完整的 agent-browser 工具集挂载到 eve Agent 中。这些工具在 Agent 沙箱内运行 agent-browser,因此浏览器进程、下载文件、截图和状态都不会进入 Next.js 运行时。

安装

pnpm add @agent-browser/eve

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 选择器。

Inspect https://example.com and summarize what is visible.

阅读文章或文档时,优先使用 browser__read。对于应用,请在交互前使用 browser__snapshot,并在页面发生变化后重新快照。

安全

Cookie、存储和已保存的认证状态相关命令有意不通过扩展暴露,因为它们可能向模型泄露凭据信息。当你需要禁用某个工具、添加审批要求或提供应用特定的受保护工具时,请使用标准的 eve 扩展覆盖机制。

示例

参见 examples/eve,这是一个完整的使用了该扩展的 Next.js eve 应用。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser