MIT License

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

invisible_dots:把“反检测”做成 Agent 的地基

项目背景与痛点

过去两年,浏览器自动化被拆成了两个世界。一边是 LLM 驱动的 Agent:OpenAI 的 Dots、Grok 的 Bot 类产品把「用自然语言指挥浏览器」这件事做成了体验,用户说一句“帮我订张票”,模型自动拆解成点击、输入、翻页。另一边是反检测爬虫圈:Patchright、nodriver、curl_cffi 们在和 Cloudflare Turnstile、DataDome、PerimeterX 做持续军备竞赛。

尴尬之处在于,两个世界的人几乎不能复用对方的成果。拿 Playwright 直接套个 Computer Use 的循环,跑不了几页就会撞上挑战页;而 stealth 库里塞满了指纹补丁,却没有任务级的编排能力,写一个“登录后导报表”的流程照样要手工维护一堆选择器。

feder-cr/invisible_dots 想做的正是把这个裂缝焊死:开源、自托管、任务级抽象,并且从第一行代码起就把“不被识别为机器人”当作架构约束而非事后补丁。对需要处理登录态、需要在有风控的站点上跑长流程的团队来说,这比再封装一层 OpenAI API 更有价值——数据不出内网,行为链路自己可控。

核心技术揭秘

从项目定位反推,它的技术骨架大概率是「规划层—执行层—隐身层—感知层」四段式,而不是简单的 while not done: screenshot -> call_llm -> click。

真正难的不是调用模型,而是一致性工程。反爬系统很少抓某一个特征,它们算的是“矛盾”:UA 说自己是 Chrome 126,但 TLS 握手指纹是 Python requests;时区是 UTC,IP 却在洛杉矶;鼠标瞬移直线移动,键盘零延迟输入。任何一处不自洽,就会被扣分。所以隐身层必须做四件事:浏览器指纹(Canvas/WebGL/AudioContext 噪声、Client Hints、字体列表)、网络层指纹(TLS/JA3、代理 IP 与地理位置对齐)、会话层(Cookie 与账号绑定、代理粘性)、行为层(鼠标轨迹、随机停顿、打字节奏)。

执行层则要绕开 CDP 本身留下的痕迹:Runtime.enable 的可检测性、navigator.webdriver、以及 Playwright 注入的全局变量,这也是 Patchright 一类方案存在的理由。

graph TD A[自然语言任务] --> B[规划器-任务拆解] B --> C[动作空间-点击/输入/导航] C --> D[执行层-Patchright 与 CDP 补丁] D --> E[隐身层-指纹注入与一致性校验] E --> F{"风控是否触发"} F -->|"命中挑战页"| G[退避重试与指纹轮换] F -->|"通过"| H[感知层-DOM 裁剪与截图] G --> H H --> I[推理模型-下一步决策] I --> J{"任务是否完成"} J -->|"未完成"| C J -->|"已完成"| K[结构化结果输出]

感知层是成本控制的关键。整页 DOM 动辄十几万 token,必须裁剪成可访问性树或带编号的截图标记(Set-of-Mark),否则一次任务烧掉的钱比人工还贵。同时它承担了 Agent 的“抗 UI 改版”能力:不依赖 CSS 选择器,而是依赖语义和视觉锚点,页面改版后仍能靠模型重新定位。

功能亮点与差异

第一,隐身不是插件而是地基。 多数 Agent 项目把 stealth 当成可选依赖,一旦站点升级风控就全线崩溃;这里把指纹一致性和行为节律放进主链路,失败重试时会连同指纹一起轮换。

第二,任务级抽象替代脚本级抽象。 用户写的是意图,不是 page.click("#submit")。对需要维护几十个站点采集流程的团队,这能省掉大量回归测试成本。

第三,自托管带来的合规与数据主权。 相比云端 Agent 产品,凭证、Cookie、抓取内容全部留在自己机器上,对金融、医疗、政企场景是硬需求。

第四,与爬虫生态的同源基因。 作者 feder-cr 在数据采集工具上已有积累,这类项目通常更在意代理池管理、并发调度、失败重放这些“脏活”,而不是只做一个漂亮的 Demo。

应用场景与落地建议

适合:竞品价格监控、招聘与舆情采集、需要登录态的 SaaS 批量操作、市场调研中的半结构化信息提取、内部 RPA 替代。不适合:高频并发的大规模抓取(LLM 延迟和成本不划算)、强监管的交易类操作、以及任何你无法承担 ToS 风险的业务。

生产落地有几条硬建议:代理质量优先级高于一切,住宅代理加会话粘性比再多的指纹补丁都管用;一实例一指纹一账号,指纹复用是账号关联封禁的头号原因;把节律当产品特性,人为限速、随机停顿、夜间降频,别把 stealth 当免死金牌;做可观测性,录屏加 trace 回放,失败样本回流成回归集;控成本,DOM 裁剪、截图压缩、中间状态缓存,别让每一步都重新推理。

综合评价

优点很明确:定位精准,把“反检测”和“Agent 编排”这两件长期割裂的事缝到了一起;自托管、任务级抽象、失败可重放,工程取向清晰。

短板同样明显:项目仍在早期,稳定性与文档成熟度需要时间验证;LLM 推理的延迟让它难以胜任毫秒级交互;成本随任务复杂度线性上升;最根本的是,反检测是一场没有终点的军备竞赛,任何 stealth 方案都有保鲜期,把它当作“能力上限”而非“承诺”才是正确心态。

一句话总结:它不是又一个套壳 Agent,而是一套把隐身当作第一性原理的浏览器自动化底座——值得在生产环境的边缘业务先跑起来,但别指望它替你解决合规和规模化的全部问题。

关于

GitHub 原始描述(英文)

AI job application bot: automated job search and job hunting, auto-apply to resume-matching jobs while you sleep.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

PowerShell
Python
Shell

贡献者

README

AIHawk. An animation: the app starts from a terminal and narrows 10 million job postings to the 25 that fit a resume; you pick three and say yes once; a Firefox window fills each form and submits it; the app shows them sent. An illustration, with invented companies and an invented person.

An AI web agent that applies to jobs for you while you sleep.

FEATURED IN
Business Insider · TechCrunch · Semafor · Wired · The Verge · Vanity Fair · 404 Media


How it works

Give it your resume. It finds the jobs that fit, you pick, and it applies.

Step What happens
1. Reads your resume Turns it into a search: the titles, the skills and the places that fit you.
2. Searches 10 million postings from 24 public sources, rebuilt every day, searched on your computer.
3. Scores Reads the best 100 against your resume, then scores the top 25 from 1 to 5, with the gaps and the reasons.
4. You pick Select the jobs you want and say yes once.
5. Applies A real Firefox opens the company’s form, fills every required field, attaches your CV and sends.
6. Keeps the answer What each page said, with a screenshot, for every application.

Why AIHawk

  • The company’s own form. No LinkedIn account and no Easy Apply: it applies where the company takes applications.
  • Every posting is tried. There is no list of sites it refuses, and a site can be taught in one Markdown file: what has been confirmed.
  • A browser built to look like yours. invisible-playwright-mcp is a real Firefox with a person’s hands, in a window you can watch.
  • One command. It installs what it needs, and everything else happens on the screen.

Install

Windows, in PowerShell:

irm https://raw.githubusercontent.com/feder-cr/Jobs_Applier_AI_Agent/main/run.ps1 | iex

Linux:

curl -LsSf https://raw.githubusercontent.com/feder-cr/Jobs_Applier_AI_Agent/main/run.sh | sh

You need a key: get one from OrcaRouter.


Sites · Configuration · Writing a plugin · Wiki · Contributing · Security · Changelog

Star history of AIHawk

评论

暂无评论