gh-aw Playwright与Web搜索能力:让Agent会查资料会点网页
【免费下载链接】gh-awGitHub Agentic Workflows项目地址: https://gitcode.com/GitHub_Trending/gha/gh-aw
gh-aw 是一款把 AI Agent 跑在 GitHub Actions 上的开源工具(GitHub Agentic Workflows)。除了写代码,它还内置了Playwright 浏览器自动化和 **Web 搜索(web-search)**两类能力,让你的 Agent 真正"会查资料、会点网页":能上网搜索资料、抓取页面内容、模拟点击和填写表单,把调研、监控、自动填表这类活儿都交给 Agent 完成。本文是面向新手的完整指南,讲清楚这两项能力是什么、怎么开启、有什么注意事项。
两项能力分别能做什么?
🔍Web 搜索(web-search)
Agent 在执行任务时可以主动发起互联网搜索,获取最新资料。适合"调研竞品"、"查某个库的最新版本"、"收集某事件的实时信息"这类场景。
🖱️Playwright 浏览器自动化
官方 Schema 中的定义是:"Playwright CLI browser automation tool for web scraping, testing, and UI interactions",即支持网页抓取、自动化测试和 UI 交互。Agent 可以像人一样打开浏览器、点击按钮、读取页面,甚至完成需要登录态才能看到的操作。
这两个工具都可以和工作流里的web-fetch、bash、github等工具组合使用,配置入口统一在 main_workflow_schema.json 的tools段中。
上面这张截图来自 gh-aw 官方的"每日仓库报告"示例:Agent 自动收集了提交、Issue、PR 等数据,生成结构化的每日简报——这类"主动查资料 + 汇总输出"正是 Web 搜索能力的典型收益。
最快开启方法:在工作流 frontmatter 里加两行
在 gh-aw 工作流文件(Markdown + frontmatter)的tools段中声明即可,无需写任何代码:
- Web 搜索:
web-search:字段声明为null或空对象即启用默认配置(见 main_workflow_schema.json 中web-search的oneOf定义)。 - Playwright:
playwright:字段支持version(锁定@playwright/clinpm 包版本,例如0.1.18)和browsers(指定要下载的浏览器)两个可选参数,完整结构定义在 tools_types.go 的PlaywrightToolConfig中:
tools: web-search: playwright: version: 0.1.18 browsers: [chromium]Playwright 支持MCP 模式和CLI 模式两种运行方式:CLI 模式下 Agent 直接调用playwright-cli命令(编译器会自动为其配置 Bash 白名单),配置解析逻辑可参考 tools_parser.go 中的parsePlaywrightTool函数。
引擎兼容性:不是所有引擎都支持 Web 搜索
⚠️ 这是新手最容易踩的坑:web-search 依赖引擎的原生支持。
- Codex:内置 Web 搜索支持(codex_engine.go 中声明
WebSearch: true)。未启用该工具时,编译器反而会注入-c web_search="disabled"显式关闭,避免 Agent 越权上网。 - Copilot:CLI 形态没有内置搜索支持,启用时编译器会输出警告并提示替代方案。
- Claude:
web-search属于其标准工具集,会正常映射为引擎的 WebSearch 能力(claude_tools.go)。
校验逻辑集中在 agent_validation.go 的validateWebSearchSupport():当工作流声明了web-search但当前引擎不支持时,编译阶段就会给出明确警告,而不是等到运行时才发现查不了资料。
如上图所示,启用联网能力后 Agent 的输出质量会明显提升:它先搜索/抓取一手信息,再把结果沉淀成摘要、Issue 更新等 GitHub 资产。
网络安全:Agent 能访问哪些域名?
gh-aw 默认在沙箱中运行 Agent,联网工具同样受网络白名单约束。Playwright 初始化时需要从 CDN 下载浏览器,因此编译器会自动放行cdn.playwright.dev和playwright.download.prss.microsoft.com两个域名(见 pkg/workflow/README.md 中PlaywrightDomains的说明)。
如果你还希望 Agent 访问其他站点,需要按官方网络配置指南额外声明允许的域名,参考:
- 网络配置指南:network-configuration.md
- MCP 与工具挂载说明:mcps.md
此外,若你之前用旧的@playwright/mcp命令挂载方式,仓库提供了自动迁移工具(codemod),可将配置改写为推荐的 CLI 模式,入口在 codemod_playwright_cli_mode.go,配合gh-aw fix即可批量升级存量工作流。
常见使用场景清单
| 场景 | 用到的能力 | 说明 |
|---|---|---|
| 每日竞品/行业动态简报 | web-search | 定时触发,搜索后汇总成 Issue |
| 自动抓取无 API 的站点数据 | playwright | 浏览器渲染后提取结构化数据 |
| 前端 UI 回归巡检 | playwright | 模拟点击、截图对比 |
| 需要登录态的页面监控 | playwright | 配合凭据配置访问内页 |
| 调研文档/版本变更 | web-search + web-fetch | 搜索定位链接,再抓取正文 |
小结
在 gh-aw 中给 Agent 加上web-search和playwright两个工具,只需要在 frontmatter 里加两行声明,编译器会自动处理引擎适配、浏览器下载域名放行和 CLI 白名单等所有细节。建议开启前先确认所用引擎支持 web-search,并按 network-configuration.md 规划好域名白名单,就能安全地让 Agent 开始"查资料、点网页"了。
【免费下载链接】gh-awGitHub Agentic Workflows项目地址: https://gitcode.com/GitHub_Trending/gha/gh-aw
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考