← 返回信息流
AI 资讯Hacker News·1 小时前

YC S22项目Intuned发布:以代码构建可靠浏览器自动化

原标题:Launch HN: Intuned (YC S22) – Build and run reliable browser automations as code

速览

YC S22孵化的初创公司Intuned发布了其浏览器自动化解决方案。该工具允许开发者以代码形式构建和运行浏览器自动化任务,旨在提高自动化流程的可靠性与可维护性。此举为需要稳定Web自动化能力的开发者和企业提供了新的技术选择。

AI 深度解读

Launch HN: Intuned (YC S22) – 以代码形式构建和运行可靠的浏览器自动化

背景

在当前的 Web 数据获取与自动化领域,开发者长期面临一个核心痛点:维护浏览器自动化脚本(如使用 Playwright 或 Selenium)极其耗时且脆弱。网站结构的频繁变更、反爬虫机制的升级以及认证会话的管理,往往导致自动化任务频繁失败。尽管 AI 模型在理解网页内容方面取得了巨大进步,但将这种理解转化为稳定、可生产环境部署的自动化代码仍然是一个挑战。

Intuned(Y Combinator S22 期孵化项目)正是在此背景下应运而生。它旨在解决“停止编写浏览器自动化”这一需求,通过 AI Agent 自动生成生产就绪的 Playwright 代码,并在网站结构变化时自动修复代码。其核心理念是让开发者获得代码级别的可靠性,而无需亲自编写和维护复杂的自动化逻辑。

核心内容

Intuned 提供了一套完整的浏览器自动化解决方案,涵盖 Scraper(爬虫)、Crawler(爬取器)、RPA(机器人流程自动化)和 AI 自动化四大场景,并推出了具备“学习”能力的 Web Tasks API。

1. Scraper(数据提取器)

专注于从任何网站提取数据,包括电商、政府门户、招聘网站等。

  • Intuned Agent:根据提示词(Prompt)和 Schema 生成爬虫代码,并在网站结构变化时利用 AI 自动修复问题。
  • 代码灵活性:支持使用 TypeScript 或 Python,基于 Playwright 或任何兼容的库/框架编写。
  • 反检测与认证:内置反检测、验证码解决(Captcha solving)和登录处理功能。
  • 调度与监控:支持定时任务运行,提供完整的日志记录和会话录制。
  • 自动扩展:从单机到数百台机器,基础设施由平台自动管理。

2. Crawler(站点爬取器)

用于在成千上万页面上发现、导航和收集数据,构建能够跟随链接、解析站点地图并索引内容的爬取器。

  • 代码灵活性:同样支持 TypeScript 或 Python,兼容 Playwright 或任何爬取库。
  • Crawl4AI 支持:提供对 Crawl4AI 的一流支持,无需管理基础设施即可部署和扩展爬取器。
  • 隐身模式:内置反检测、代理和验证码解决功能。
  • 可扩展基础设施:用户控制运行机器数量,其余由平台处理。

3. RPA(机器人流程自动化)

构建代表用户与网站交互的浏览器自动化,如表单提交、数据录入、账户操作等。特别适用于集成那些不提供 API 的服务。

  • 内置认证支持:通过编写 create.ts/check.ts(或 Python 对应文件),Intuned 管理会话生命周期(验证、复用和重建)。
  • 多引擎支持:支持 TypeScript/Python 配合 Playwright,或通过 AI 驱动(如 Anthropic Computer Use, OpenAI CUA, Stagehand, Browser-use, Gemini Computer Use)。
  • 操作方式:既可以通过浏览器交互自动化,也可以通过更快的浏览器内网络请求实现。
  • API 优先与并发控制:部署为 API 端点,设置并行限制,平台负责队列和执行。

4. AI 自动化

构建能够导航、交互和提取数据的 AI 驱动自动化。无论是将 AI Agent 作为产品构建,还是利用 AI 自动化爬取和工作流。

  • 广泛兼容性:支持任何 AI 浏览器库或 API,包括 Anthropic Computer Use, OpenAI CUA, Stagehand, Browser-use, Gemini Computer Use 以及 Intuned/Browser SDKs。
  • 混合模式:可以在单个自动化中结合确定性的 Playwright 逻辑与 AI 驱动的步骤。
  • AI 用量控制:监控并限制自动化任务中的 AI 信用额度使用。
  • 可扩展基础设施:可部署为 API 或调度任务,控制并发,平台处理剩余部分。

5. Managed Scraping(托管爬取服务)

针对需要数百或数千个爬虫的用户,由 Intuned 的解决方案工程师(由 Intuned Agent 赋能)代为构建和维护。

  • 构建与交付:用户告知所需站点和 Schema,Intuned 交付生产就绪的爬虫。
  • 成本效益:解决方案工程师 + Intuned Agent 意味着更低的成本和更快的构建速度。
  • 持续维护:网站变更时,Intuned 更新爬虫以保持运行。
  • 无锁定:用户拥有代码所有权,可随时切换至自助服务模式,无转售或黑盒限制。
  • 灵活定价:按数据源固定费用或定制安排。

6. Web Tasks API:具备学习能力的 Web 任务

这是 Intuned 的核心创新点之一。Web Tasks 允许通过自然语言指令运行任何 Web 任务(爬取、爬取、填表、多步操作、下载文件等)。其独特之处在于引入了 reuseKey 机制,使任务具备“学习”能力。

工作原理示例: 当首次运行一个任务时,Intuned 会创建技能(Skill)并编写可复用的辅助函数。当后续使用相同的 reuseKey 运行类似任务时,系统会复用之前的技能,从而显著降低执行时间和成本。

代码示例解读:

  • TypeScript 示例

    const companySchema = z.array(
      z.object({
        name: z.string(),
        location: z.string(),
      }),
    );
    
    // 第一次运行:创建技能
    await webTasks.run({
      task: "Scrape YC companies. Return name, batch, description, and URL.",
      startUrl: "https://www.ycombinator.com/companies",
      parameters: { batch: "S24" },
      outputSchema: companySchema,
      reuseKey: "yc_companies_scraper",
    });
    // 输出: ✓ created skill yc_companies_scraper
    //       ✓ wrote reusable helpers
    //       ✓ returned 247 companies · 6m 12s · $0.84 AI + 0.10 compute hrs
    
    // 第二次运行:复用技能,速度大幅提升
    await webTasks.run({
      task: "Scrape YC companies. Return name, batch, description, and URL.",
      startUrl: "https://www.ycombinator.com/companies",
      parameters: { batch: "W24" },
      outputSchema: companySchema,
      reuseKey: "yc_companies_scraper",
    });
    // 输出: ✓ reused skill yc_companies_scraper
    //       ✓ returned 208 companies · 58s · $0.12 AI + 0.02 compute hrs
    
  • Python 示例

    class Company(BaseModel):
        name: str
        location: str
    
    # 第一次运行
    await web_tasks.run(
        task="Scrape YC companies. Return name, batch, description, and URL.",
        start_url="https://www.ycombinator.com/companies",
        parameters={"batch": "S24"},
        output_schema=list[Company],
        reuse_key="yc_companies_scraper",
    )
    # 输出: ✓ created skill yc_companies_scraper ...
    
    # 第二次运行
    await web_tasks.run(
        task="Scrape YC companies. Return name, batch, description, and URL.",
        start_url="https://www.ycombinator.com/companies",
        parameters={"batch": "W24"},
        output_schema=list[Company],
        reuse_key="yc_companies_scraper",
    )
    # 输出: ✓ reused skill yc_companies_scraper ...
    

集成指南:

  • 触发方式:用户可通过 Intuned CLISDK(TypeScript/Python)触发任务。
  • 可选输入
    • parameters:动态输入,每次运行可能不同。
    • outputSchema
查看原文 →intunedhq.com