SuperAPI AI 工具集

lumen

Lumen 是 Jina 底层的浏览器智能体,采用视觉优先(vision-first)方案,通过截图—模型—动作—截图的闭环运行,不依赖 DOM 抓取或 CSS 选择器。它支持 Anthropic、Google、OpenAI 及任意 OpenAI 兼容端点,并具备自愈式确定性重放能力。Lumen 还包含历史压缩、统一坐标归一化、持久化记忆、流式事件、会话恢复、安全策略(域名白/黑名单、动作前钩子、完成验证)、重复检测、动作缓存与子任务委派等特性,需要 Node.js 20.19 及以上版本和 Chrome/Chromium 本地浏览器。

访问官网

工具介绍

Lumen 是一个视觉优先的浏览器智能体(browser agent),由 Jina 开发,仓库地址为 https://github.com/omxyz/lumen。其核心设计为感知循环:截图 → 思考 → 执行动作 → 再截图,整个过程通过 CDP(Chrome DevTools Protocol)运行。它不进行 DOM 抓取,也不使用选择器,而是直接基于视口截图驱动模型决策。

主要能力

  • 视觉闭环:截图 → 模型 → 动作 → 截图,完全避免 DOM 依赖。
  • 多提供商支持:可接入 Anthropic、Google、OpenAI 以及任意 OpenAI 兼容端点。
  • 历史压缩:在上下文利用率达到 80% 时,先进行一级截图压缩,再进行二级 LLM 摘要。
  • 统一坐标:ActionDecoder 在解码时将所有提供商的坐标格式归一化为视口像素。
  • 持久化记忆:writeState 持久化结构化 JSON,在历史压缩后仍可保留。
  • 流式输出:agent.stream() 返回类型化 StreamEvent 对象,便于实时 UI 展示。
  • 会话恢复:可序列化为 JSON,之后通过 Agent.resume() 恢复。
  • 安全机制:SessionPolicy(域名允许/阻止列表)、PreActionHook(命令式拒绝)、Verifier(完成门控)。
  • 重复检测:三层卡住检测,并伴随逐步升级的提示信息。
  • 动作缓存:磁盘缓存用于重放已知有效的动作。
  • 子任务委派:模型可通过 delegate 将子任务移交给新的循环执行。

运行与使用方式 需要 Node.js ≥ 20.19 以及 Chrome/Chromium 用于本地浏览器模式。模型可通过 "provider/model-id" 形式指定;任何无法识别的前缀会交由 CustomAdapter 处理(OpenAI 兼容聊天补全)。支持 Anthropic 的扩展思考(extended thinking)。可通过 startUrl 预导航,节省 1-2 个模型步骤;支持多运行会话(multi-run session)和会话恢复。浏览器选项、事件参考及日志表面(如 LUMEN_LOG_CDP、LUMEN_LOG_ACTIONS、LUMEN_LOG_BROWSER、LUMEN_LOG_HISTORY、LUMEN_LOG_ADAPTER、LUMEN_LOG_LOOP)可供调试。

核心循环细节

  1. 截图:通过 CDP 捕获浏览器视口。
  2. 历史:追加到 wire history;上下文超过阈值时压缩(一级:丢弃旧截图;二级:LLM 摘要)。
  3. 上下文:组装系统提示,包含持久状态、站点特定提示(SiteKB)、卡住提示与工作流提示。
  4. 模型:从模型流式获取动作(支持 Anthropic、Google、OpenAI 或任意 OpenAI 兼容端点)。
  5. 执行:ActionRouter 通过 CDP 将每个动作分发到 Chrome(点击、输入、滚动、跳转等)。
  6. 验证动作:ActionVerifier 运行启发式后置检查(点击是否命中?输入后是否有焦点?)。
  7. 检测循环:RepeatDetector 检查三层——精确动作重复、类别主导、URL 停滞;逐步升级提示引导模型脱离。
  8. 检查点:定期保存浏览器状态;深度停滞(等级 8+)时回溯。
  9. 终止门控:当模型调用 task_complete 时,Verifier(ModelVerifier 或自定义)检查截图确认。被拒绝则循环继续;通过则返回结果。

适用场景

  • 需要浏览器自动化而无需维护选择器的网页任务。
  • 需要跨模型提供商灵活切换的智能体实验。
  • 需要确定性重放与自愈能力的重复性工作流。
  • 在 WebVoyager 基准(初步)中进行了评估:从 WebVoyager 中抽取 25 个任务的子集,跨越 15 个站点分层,由 LLM-as-judge(Gemini 2.5 Flash)评分,每任务 3 次试验。Lumen 启用 SiteKB(领域特定导航提示)和 ModelVerifier(终止门控)运行。所有框架使用 Claude Sonnet 4.6 作为智能体模型。

限制与注意事项

  • 需 Node.js ≥ 20.19 和 Chrome/Chromium;Linux CI 上需自行以 --no-sandbox 启动 Chrome 并使用 cdp 类型的浏览器连接。
  • 仅支持 ESM(ESM-only),需在 tsconfig.json 中使用 "moduleResolution": "bundler" 或 "nodenext"。
  • API 密钥未找到时会回退到环境变量:ANTHROPIC_API_KEY、GOOGLE_API_KEY / GEMINI_API_KEY、OPENAI_API_KEY。
  • 循环达到 maxSteps 时可增加 maxSteps、添加聚焦的 systemPrompt,或使用 verbose: 2 调试。
  • BROWSER_DISCONNECTED 是唯一会抛出的错误;其他动作错误会反馈给模型。