巴纳克
巴纳克将任何网站变成API. 指向一个网站,描述用户 它生成一个插件,由 HTTP 直接呼叫自动支持 浏览器倒回-没有需要手动维护的刮取代码.
如何运作
点Barnacle在一个站点,用简单的英语描述用户流量,并运行 3 侦察命令 Barnacle 通过流量驱动一个真正的浏览器, 抓取每个 API呼叫,用平版HTTP重放,以证明哪些没有浏览器就能工作, 探测速率限制上限,并生成一个完整的插件 — Zod schemas 从捕获的JSON、负载头、限速上限、热道推断 HTTP 客户端,和 Stagehand 浏览器倒置. 在一行中注册插件; Barnacle 处理会话、重试、回落路由、持续审计 响应信封包装.
| 阶段 | 运行中 | 你得到的东西 |
|---|---|---|
| 1 — 浏览器侦察 | pnpm run recon:browser | 每个API呼叫网站,捕获到 <run-dir>/graphql/*.json |
| 2–3 — HTTP 重放+ 探测 | pnpm run recon:http | 证明每个端点没有浏览器工作; 限速上限; 静态固定装置 |
| 4 — 插件生成 | pnpm run recon:generate | 一个完整的插件: Zod schemas, headers, Bottleneck 配置, 热路径客户端, Stagehand 倒置 |
| 5+ — 运行时间 | pnpm start | 直接 HTTP 热路, 自动浏览器回落, 夜间吸烟测试, 漂移检测 |
见 文件/建筑图 设计理由 文件/游戏手册.md 完全的分步指南 添加新网站.
使用量
先决条件
- 节点.js 22.19+
- pnpm 10.4.1 (中文(简体) )
- 浏览器账户( A)
BROWSERBASE_API_KEY+ 键BROWSERBASE_PROJECT_ID),用于被管理的浏览器会话——默认提供者. 一个钢铁帐户(STEEL_API_KEY)是一种通过SCRAPER_PROVIDER=steel - 自动键( A)
ANTHROPIC_API_KEY为了Stagehand的LLM电话, 或者说 AWS Bedrock (英语:USE_BEDROCK=true+ AWS证书)——见 文件/配置 详情
安装
pnpm install
cp .env.example .env # fill in BROWSERBASE_API_KEY + BROWSERBASE_PROJECT_ID (or STEEL_API_KEY for SCRAPER_PROVIDER=steel) and either ANTHROPIC_API_KEY or Bedrock creds
生成和散开一个 API 密钥,加上完整的 Env-var 引用, 生活在 文件/配置。 。 。 .
德维
pnpm run dev
生产建筑
pnpm run build
pnpm start
试试看
随着dev服务器的运行,确认它是:
curl -s http://localhost:3000/health | jq .
已注册内置插件的 Barnacle 靴子( 见 BUILTIN_SITE_PLUGINS
内 src/plugins/discover.ts) (中文(简体) ). 每个注册的插件曝光
POST /v1/<siteId>/run; 每个响应使用相同的信封形状
(单位:千美元){ status, ...pluginData })所以客户共享一个解析器. 见
文档/插件作者.md#端点
用于整个终点.
图标
| 命令 | 它会做什么 |
|---|---|
pnpm run dev | tsx watch --env-file=.env src/server.ts 热重装 |
pnpm run build | 编译为 dist/ (tsc +路径别名重写+复制固定) |
pnpm start | node dist/server.js |
pnpm run typecheck | 严格 TS 不发送 |
pnpm run lint 编号 : lint:fix | 生物体 |
pnpm run test | 检测单位+整合 |
pnpm test src/scraper/fixtures.test.ts | 运行单个测试文件( NEVER 使用) -- 在过滤器之前) |
pnpm run test:watch | 监视模式下的维特 |
pnpm run test:coverage | V8覆盖报告 |
pnpm run format | Biome 格式写入 |
pnpm run recon:browser | 第一阶段——驱动浏览器+捕获API呼叫 |
pnpm run recon:http | 阶段2–3——回放,回放,探测率限制 |
pnpm run recon:generate -- --site-id <id> | 第4阶段——从文物中生成完整的插件 |
pnpm run recon:summarize -- --site-id <id> | 第4阶段(可选)——撰写人能读取的研究结果 |
pnpm run recon:heal -- --site-id <id> --url <url> | 在不修改源文件的情况下自愈失败的重试流程 |
pnpm run smoke -- --site <id> --payload '...' | 第6阶段——进行夜间漂浮探测烟雾试验 |
pnpm run judge:llm -- --calls-ndjson <path> --call-type <type> | 有分数的 LLM 调用三维分数 |
pnpm run heal:llm -- --verdict-path <path> --call-type <type> | 自愈失败的即时模板 |
写入插件
站点插件是一个满足的单一类型脚本模块 SitePlugin<TInput, TOutput>
从 src/site-plugin.ts a 包括: meta 块,可选 executeHttp 热道,还有
阶段手 execute 倒计时. pnpm run recon:generate 为您撰写此结构 .
插件也可以是完全没有TypeScript的配置唯一的JSON显示. 满
参考文献 文件/插件作者.md。 。 。 .
参考文献
- 编码标准 : 克劳德·姆德
- 建筑和设计原理 : 文件/建筑图
- 侦察游戏本(分步骤): 文件/游戏手册.md
- 配置( 所有嵌入式 vars, 部署, 共同问题) : 文件/配置
- 插件作者指南 : 文件/插件作者.md (可操作的例子: 实例/插件/hello-site/(中文(简体) )
- 测试指南 : 文件/测试
- 安全政策和脆弱性报告: 警卫
- 遥测 & LLM 判断概念指南 : 文件/遥测和判断
- 提交调节运行本 : 文件/提交-和解
- 现场侦察结果: 文档/目标校对 (第一次会议之后人口众多)
pnpm run recon:summarize(中文(简体) )
许可证
麻省理工学院 加纳
欢迎捐款——见 捐款额。 。 。 .