摘要
传统 LLM 驱动 AI Agent 普遍采用逐步骤大模型调用(per‑step LLM call)执行范式,每一次任务运行,Agent 都需要调用大模型完成规划、工具选择、动作输出、结果校验全链路推理,带来三大工程痛点:执行时延高、Token 成本居高不下、输出行为非确定性,同一输入多次运行得到不一致结果,很难直接用于生产环境自动化业务流程。Airtop Agent‑Builder 提出一套差异化技术路线:用户使用通俗易懂的自然语言描述完整业务工作流,Agent‑Builder 将自然语言意图预编译为可直接运行的结构化代码工作流;任务运行阶段优先执行编译产出代码,仅在少量需要语义理解的节点触发 LLM 调用,实现接近传统软件程序的确定性执行行为Airtop Age...。当工作流执行过程出现异常失败时,平台内置故障自愈链路,自动完成现场快照采集、根因排查、出错步骤重构,并且通过一次独立真实测试运行验证修复逻辑有效性,修复后的代码更新至 Agent 工作流版本库。Agent 全部实例安全托管在 Airtop 云端运行时环境,官方基准测试数据显示,对比传统逐步骤调用 LLM 的 Agent,编译式执行最高可获得 100 倍量级效率提升Airtop Agent。本文将从范式对比、编译链路、工作流实例、故障自愈内核、云运行时架构、性能根源、工程局限、实战落地等多个维度完整拆解 Agent‑Builder 技术体系,同时对比主流 Agent 框架,分析编译式 Agent 技术路线的优势与现实约束。
引言:当代 AI Agent 生产落地的现实技术困境
AI Agent 技术经过多年迭代,已经演化出大量成熟开源框架,LangGraph、AutoGen、LlamaIndex Agent 等框架已经被广泛用于原型开发、PoC 验证阶段。绝大多数开源 Agent 框架底层执行模型属于提示驱动型 Agent(Prompt‑Driven Agent),核心运行逻辑是循环:接收观测结果→调用 LLM 做推理规划→选择工具执行动作→接收工具返回结果,循环往复直到任务完成或者触发终止条件Airtop Age...。
这种架构非常适合开放式探索任务,例如通用问答、多工具开放式调研;但是当面向生产级自动化工作流场景时,这套原生架构暴露出难以回避的工程缺陷。
第一点,非确定性(Non‑determinism)。完全依靠大模型每轮推理输出动作,相同输入条件,两次运行 Agent 可能选择完全不同执行路径。网页 DOM 元素轻微变动、接口返回字段顺序改变,都可能造成 Agent 流程中断,无法保证可复现执行结果。对于自动化业务流程,不可复现意味着无法上线生产环境,不能用于定时任务、批量数据处理等场景Airtop Age...。
第二点,运行成本高昂、延迟大。每一个执行步骤都要发起 LLM API 调用,每一步都要传入完整上下文窗口,网页 DOM、工具返回数据、历史步骤全部塞入 Prompt,Token 消耗量随步骤数量线性上涨。长工作流场景下,单次任务消耗大量 Token,同时 LLM 网络推理时延不断累积,整体任务耗时居高不下。
第三点,故障定位困难,修复成本高。当 Agent 执行失败,开发者只能拿到日志报错,很难定位到底是 Prompt 缺陷、网页页面变更、模型幻觉、网络抖动、权限问题哪一类根因。传统 Agent 没有自动修复能力,故障发生后,需要人工复盘日志、修改提示词、反复测试验证,维护成本很高。网页自动化场景,前端页面改版、按钮选择器变更,都会直接导致 Agent 失效,运维负担进一步放大Airtop。
第四点,审计与可观测性短板。Prompt 驱动 Agent,运行时行为由模型实时生成,没有一份静态可读的工作流定义文件。很难做版本管理、代码评审、变更追踪,出现线上故障很难回溯 Agent 预期行为。
行业中 RPA 工具(UiPath、Automation Anywhere)能够做到确定性自动化,但是 RPA 工具需要开发者手动拖拽节点、手写选择器,要求使用者掌握自动化脚本开发能力,无法直接用自然语言生成完整流程。
Airtop Agent‑Builder 尝试弥合这两类方案的鸿沟:使用自然语言作为输入,输出确定性可运行代码工作流,兼顾自然语言易用性与传统软件的可复现执行能力。它不是简单的 Prompt 封装,核心创新点在于 “编译” 思想:LLM 更多承担编译期意图解析角色,而不是运行时每一步的决策大脑Airtop Age...。
需要明确:本文所有分析基于公开文档、官方技术博客与公开基准测试,不涉及 Airtop 闭源私有实现细节,所有技术推断基于对外暴露行为与 SDK 样例。
1 Agent‑Builder 整体技术总览
1.1 核心概念定义
- Agent‑Builder:Airtop 平台内置工作流编译构建组件,输入为人类通俗易懂的自然语言工作流描述,输出为结构化可执行 Agent 代码工件(典型为 TypeScript 格式 agent 定义),承担 “Agent 编译器” 角色,而不是运行时推理引擎Airtop Age...。
- Compiled Agent(编译式智能体):经过 Agent‑Builder 输出产物,本质是描述步骤、分支逻辑、数据提取 Schema、异常钩子的结构化代码。运行阶段优先执行预定义步骤,仅当流程中显式标记需要语义推理的节点才调用 LLM。
- Self‑healing Runtime(自愈运行时):云端执行环境内置故障诊断子系统。Agent 运行抛出异常 / 步骤失败,自动触发故障排查流程,捕获现场上下文,尝试重构失败步骤,并且执行独立测试会话验证修复,修复完成更新 Agent 版本。
- Cloud‑native Browser Runtime:Airtop 自研云浏览器集群,并非简单对 Playwright 封装,专门面向 Agent 网页交互场景构建,托管全部 Agent 实例运行会话,隔离租户环境,提供会话生命周期管理、截图、DOM 捕获、页面交互能力,支持登录态、2FA、验证码处理等复杂网页场景Airtop Age...。
- Per‑step‑LLM Agent(传统逐步骤 LLM Agent):行业主流范式,运行时每一步都调用大模型进行决策规划,是 Airtop 对比基准对象。
1.2 完整生命周期总流程
Agent 完整生命周期分为两大阶段:编译构建阶段(Build‑Time),运行执行阶段(Run‑Time),故障自愈逻辑穿插在运行阶段。
1)编译构建阶段
- 用户输入通俗英语自然语言描述完整业务工作流;
- Agent‑Builder 启动编译会话,拉起实时云浏览器预览环境;
- 编译器解析自然语言意图,拆解任务序列、分支条件、数据提取目标、交互动作;
- 在实时浏览器环境执行试探性运行,收集页面 DOM、元素特征,识别交互目标;
- 生成结构化 agent.ts 代码工件;
- 开发者可以观察预览会话,人工修正错误行为,修正信息回传给编译器,迭代更新代码;
- 编译完成输出固定版本 Agent 工件,部署到云端运行时。
编译阶段大量消耗 LLM 资源;一旦编译完成,后续多次执行,默认不再重复调用 LLM,除非流程内部包含显式语义推理节点。
2)运行执行阶段
- 触发器触发 Agent 运行:定时调度、Webhook 回调、API 调用手动触发;
- 云端隔离浏览器会话启动,加载编译产出代码;
- 按预定义步骤顺序执行交互、跳转、表单填写、数据抽取;
- 遇到条件分支执行预定义判断逻辑;
- 当流程步骤执行失败,触发内置自愈子系统;
- 自愈流程完成修复验证后,更新 Agent 版本;
- 任务结束输出结构化结果,持久化完整运行日志、截图、步骤轨迹用于可观测;
- 销毁浏览器会话,释放资源。
1.3 编译式 Agent vs 传统 Prompt 驱动 Agent 范式对比
下表从技术维度对比两种 Agent 架构,不做产品优劣评判,客观列出技术特征。
| 对比维度 | 传统逐步骤 LLM Agent | Airtop 编译式 Agent |
|---|---|---|
| LLM 调用时机 | 运行时每一步循环调用 LLM 做决策 | 编译期大量调用 LLM;运行时仅语义节点调用 LLM |
| 执行确定性 | 非确定,相同输入输出可能不一致 | 高确定性;相同输入,输出可复现,行为类似软件程序 |
| 核心产物 | Prompt 模板、工具列表;无静态工作流代码 | 可审计、可版本管理结构化代码工件 agent.ts |
| Token 开销 | 每次运行消耗大量 Token | 一次编译消耗 Token;多次运行 Token 开销极低 |
| 故障处理 | 依赖人工修改 Prompt,无自动修复链路 | 内置自动故障排查、步骤重构、测试验证自愈链路 |
| 调试方式 | 调试 Prompt,调试模型参数 | 调试生成代码,修改步骤定义,支持人工干预编译循环 |
| 适用场景 | 开放式探索、未知任务;每次任务目标动态变化 | 固定业务自动化流程,网页 RPA、批量数据采集、定时任务 |
| 短板 | 成本高、不稳定、难上生产 | 流程变更需要重新编译;完全未知动态任务场景能力受限 |
重要边界:编译式 Agent 不等于完全禁用 LLM。如果业务流程内需要开放语义判断,开发者可以在工作流中显式插入 extract 语义抽取节点,运行时该节点依旧会调用 LLM,只是不需要每一步都调用模型Airtop Age...。
2 Agent‑Builder 编译链路深度拆解
2.1 编译器输入:通俗英语自然语言工作流样例
按照需求,我们给出一段通俗易懂英语描述的网页自动化工作流,作为 Agent‑Builder 输入样例。
Plain‑English Workflow Input Sample: "Open the target web page. Log into the platform using provided account credentials. Navigate to the project list page. Iterate over every project entry visible on current page. For each project item, extract project name, creation timestamp, project status, and owner username. Skip entries marked as archived. Collect all valid records into structured dataset. After finishing current page, click next‑page button if next‑page button exists. Repeat data collection until there is no next‑page button. Finally push all collected structured records to target webhook endpoint. If login step fails, terminate workflow and log error message."
翻译参考:打开目标网页,使用账号凭证登录平台,跳转到项目列表页面。遍历当前页面每一条项目条目,提取项目名称、创建时间戳、项目状态、所有者用户名;跳过标记归档的条目,将有效记录收集为结构化数据集。处理完当前页面,如果下一页按钮存在,则点击下一页;重复采集直到不存在下一页按钮。最后把全部收集到结构化记录推送到目标 Webhook 接口。如果登录步骤失败,终止工作流并记录错误信息。
这一段自然语言就是用户给到 Agent‑Builder 全部输入,不需要编写任何选择器、脚本代码。Agent‑Builder 编译器接收该文本,完成意图解析、任务拆解、浏览器试探、输出 agent.ts 结构化代码工件。
2.2 编译链路内部子模块划分
Agent‑Builder 编译器内部逻辑,从公开技术文档可以拆解为 4 个子模块:意图解析器、浏览器试探执行引擎、工作流代码生成器、编译教学反馈循环模块Airtop Age...。
2.2.1 意图解析器
接收自然语言文本,将人类描述拆解为抽象工作流中间表示(Intermediate Representation IR)。 解析器识别出:
- 基础动作原语:打开页面、登录、点击按钮、表单填写;
- 数据抽取 Schema 定义:需要抽取字段、字段类型、过滤条件(跳过归档条目);
- 控制流:循环翻页、条件判断(是否存在下一页按钮);
- 异常分支逻辑:登录失败终止流程;
- 输出动作:数据推送到 Webhook;
- 边界终止条件。
这里 LLM 承担编译器前端角色,把自然语言翻译成抽象 IR 树,IR 还不是可运行代码,只是抽象描述工作流的数据结构。
2.2.2 浏览器试探执行引擎
仅有 IR 抽象描述不足以生成可靠自动化。网页 DOM 结构、元素文本、按钮特征、页面跳转逻辑,必须在真实浏览器环境探查。编译器拉起临时云浏览器会话,按照 IR 描述试探性执行流程,完成页面探测:
- 获取 DOM 树,识别按钮、输入框、列表条目;
- 收集元素特征:文本、CSS 选择器、XPath、可访问属性;
- 验证跳转逻辑是否有效;
- 识别分页控件、判断元素存在性的特征;
- 记录页面加载行为,捕获弹窗、鉴权跳转等干扰元素。
试探会话会实时可视化展示给开发者,开发者能够观察 AI 尝试操作网页全过程。如果试探过程 AI 操作出错,开发者直接人工纠正行为;人工纠正动作会被编译器捕获,回写到 IR 中间表示,修正抽象工作流,这就是所谓 “teaching loop” 教学循环,人工反馈参与编译迭代,提升最终代码可靠性Airtop Age...。
这一步非常关键:传统代码生成 Agent 只在文本空间生成代码,没有真实浏览器环境验证,生成脚本经常拿到生产环境就失效。Agent‑Builder 编译阶段就完成真实网页试探,把页面真实特征固化到编译产物代码中。
2.2.3 工作流代码生成器
基于 IR 中间表示 + 浏览器试探采集到页面特征,输出最终可运行 TypeScript Agent 工件,样例代码框架如下(参考官方样例格式)Airtop Age...:
agent.define({
start: "https://target‑platform.example.com",
steps: [
act("login", { credentials: agent.secrets.platform_cred }),
act("navigate_to_project_list"),
loop({
while: "next‑page button exists",
body: [
extract({
schema: {
project_name: "string",
creation_timestamp: "datetime",
project_status: "string",
owner_username: "string"
},
filter: "status != 'archived'",
output: agent.variables.project_dataset
}),
act("click_next_page", { optional:true })
]
}),
act("push_to_webhook", {
url: agent.config.target_webhook,
payload: agent.variables.project_dataset
})
],
error_handlers: {
"login_failure": { action: "terminate", log_error: true }
}
})
这份代码就是编译产物。代码内部定义 steps 步骤数组,loop 循环原语、extract 抽取原语、act 动作原语,error_handlers 异常处理器。代码不包含通用大模型推理循环逻辑,它声明式描述整个工作流。运行时 Airtop 云运行时解释执行这份 agent 定义,调用底层浏览器原语完成网页交互。
开发者可以直接查看、导出这份代码,可以进行版本控制,对比不同编译版本之间变更,这是编译式 Agent 可审计的核心来源。
注意:agent.ts 不是完整独立 Node 程序,是 Airtop 平台 DSL(领域特定语言),需要 Airtop 云运行时解释执行。
2.2.4 编译教学反馈循环模块
网页场景复杂度很高,自然语言一次描述很难直接生成完美工作流。编译阶段提供人机协同迭代闭环:
- 编译器运行试探会话;
- 用户观察浏览器实时视图,如果发现操作错误;
- 用户直接在预览会话手动操作网页完成正确动作;
- 平台捕获人工操作序列,把人工行为转化为 IR 修改;
- 更新 IR,重新生成 agent.ts 代码;
- 重复迭代直到试探运行全部流程正确。
该机制把人类纠错反馈融入编译流程,不需要用户手写脚本,只需要人工演示正确操作,编译器记录行为更新代码工件Airtop Age...。
3 Agent 运行时执行机制:编译产物如何在云端执行
编译完成之后,Agent 版本保存,后续触发运行,就进入运行时阶段。运行时不会再调用 LLM 去规划每一步,运行时解释引擎读取 agent.ts DSL 定义,依次调度浏览器底层原语执行每一个 step。
3.1 Airtop 云运行时架构分层
Airtop Agent 运行环境分为四层架构,由底层向上:浏览器资源池层、会话调度层、Agent DSL 解释引擎层、上层业务 API / 可观测层Airtop Age...。
1)浏览器资源池层 并非简单封装 Playwright,自研云浏览器集群。隔离浏览器会话,每一个 Agent 任务分配独立浏览器实例,避免会话之间污染。支持管理指纹、代理网络、会话存储、Cookie 登录态,处理网站反爬、验证码、OAuth、2FA 登录场景。浏览器会话生命周期和 Agent 任务绑定,任务结束立刻销毁实例,保障租户隔离安全。
2)会话调度层 负责并发调度,接收外部触发器(cron 定时、webhook、API 请求),分配浏览器资源池实例;限制最大并发数;会话超时管控;资源回收;租户资源隔离,防止单租户耗尽集群资源。
3)Agent DSL 解释引擎层 这一层负责解释 agent.ts 编译产物。遍历 steps 数组,识别 act、extract、loop、condition 分支、error_handlers 原语,调用下层浏览器原语执行网页动作。
- act:执行网页交互动作(点击、表单填写、跳转);
- extract:数据抽取节点,如果抽取需要语义解析,则在该节点按需调用 LLM;不需要语义解析时直接基于 DOM 选择器提取字段;
- loop /condition:控制流原语,执行循环、分支判断逻辑;
- error_handlers:绑定步骤异常钩子,步骤抛出异常时触发对应逻辑;当异常无法被普通 error_handlers 处理,则向上抛出,触发自动故障自愈子系统。
4)上层可观测与 API 层 保存每一次运行完整轨迹:步骤记录、DOM 快照、截图、错误堆栈、变量输出;对外暴露 SDK 接口,支持外部系统调用 Agent;提供运行日志、版本管理,保存 Agent 编译历史版本。
3.2 运行时两种 LLM 调用场景区分
很多人存在误解:编译式 Agent 完全不使用 LLM,这是错误认知。运行时 LLM 调用分为两类:
- 编译期 LLM 调用:构建 Agent 的时候大量调用,生成 IR、生成 DSL 代码;任务发布之后,正常多次运行不再重复消耗。
- 运行时按需 LLM 调用:只有 DSL 中 extract 等显式语义节点,运行时才会发起 LLM 调用。纯粹点击、跳转、表单填写确定性动作,完全不需要模型参与。
如果工作流绝大多数步骤都是确定性网页交互,仅少量节点需要语义抽取,那么单次运行 LLM 调用次数极少,Token 开销大幅下降,这就是官方宣称效率提升最高 100 倍的底层来源。
100 倍效率提升来自官方基准测试对照实验:同一个多步骤网页采集任务,传统逐步骤 LLM Agent 和 Airtop 编译 Agent 做对比,指标包含耗时与 Token 成本。该数值属于特定任务基准结果,不是所有场景都可以稳定拿到 100 倍提升。如果工作流大量节点都需要运行时语义推理,效率差距会明显缩小。
4 自动故障自愈内核:失败排查、步骤重建、测试验证完整流程
这是 Airtop Agent‑Builder 非常关键的技术特性:Agent 运行时步骤执行失败之后,平台不会直接标记任务失败结束,自动执行一整套故障自愈流程,包含故障现场采集、根因分析、出错步骤重构、独立测试会话验证修复、Agent 版本更新;如果自愈流程无法修复,任务标记失败,输出完整故障报告给开发者。
需要区分:DSL 内部简单 error_handlers 只是预定义异常处理分支;而自动自愈系统是独立子系统,处理非预期未知故障,例如网站改版 DOM 元素失效、页面结构变更、网络抖动等编译阶段没有预见到的错误。
4.1 触发自愈子系统的条件
当 Agent 运行,某一步骤执行抛出异常,并且该异常没有被 DSL 定义 error_handlers 捕获处理,就会触发自愈链路。典型故障场景:
- 页面改版,编译阶段采集 CSS 选择器失效,act 点击元素找不到目标;
- 页面加载超时,网页资源加载失败;
- 网页结构发生变化,列表 DOM 结构改动;
- 临时网络错误;
- 弹窗、广告弹窗干扰页面交互;
- 站点反爬策略导致页面渲染异常。
4.2 自愈完整流水线 5 个阶段
阶段一:故障现场完整快照采集
系统立刻冻结当前浏览器会话现场,采集全套故障证据,防止现场丢失:
- 当前页面完整 DOM 树;
- 页面截图;
- 当前执行变量上下文;
- 失败步骤 DSL 定义;
- 失败堆栈信息、错误码;
- 之前全部步骤运行轨迹;
- 网络请求日志。
全部快照持久化存储,用于后续根因分析,同时留存用于人工排查。
阶段二:自动问题排查(根因推理)
自愈子系统把故障现场全部上下文输入 LLM,让模型完成故障诊断: 识别故障根因分类:元素选择器失效、页面结构变更、页面超时、弹窗干扰、鉴权失效、网络问题等。输出诊断结论:到底 DSL 哪一部分逻辑失效,需要修改哪一个步骤。
注意:这一步 LLM 调用发生在故障发生时刻,属于运行时额外模型开销;但是只有故障才触发,任务正常成功运行不会执行这套流程。
阶段三:出错步骤重构
根据根因诊断结果,修改 Agent 的 DSL 中间表示 IR,对出错步骤做重构更新:
- 如果是元素选择器失效:重新基于当前 DOM,识别新的元素定位特征,更新 act 动作内部元素描述;
- 如果是新增弹窗干扰:增加前置弹窗关闭动作;
- 如果页面结构变更:调整数据抽取逻辑;
- 修改对应步骤 DSL 定义,生成一份修复后的 Agent 临时版本。
该阶段只修改出错局部步骤,不会重写整个工作流,最大程度保留原有编译逻辑。
阶段四:独立真实测试运行验证修复效果
这是 Airtop 自愈设计很重要一点:修复代码不会直接投入原有业务会话运行,会拉起全新隔离浏览器测试会话,使用故障场景相同输入条件,完整重跑修改后的步骤,完成一次真实测试运行,验证修复逻辑是否真的生效Airtop Age...。
避免一类风险:LLM 给出理论修复方案,但是修复逻辑本身存在缺陷,如果直接在业务会话执行,会带来二次异常。必须真实浏览器环境完成测试验证。
- 如果测试会话运行修复步骤成功:自愈判定成功;
- 如果测试会话依旧失败:尝试最多 N 轮重试重构;达到重试上限之后自愈终止,标记任务失败。
阶段五:版本更新或者终止自愈
情况 A:测试验证修复成功。把修复后的 DSL 更新为 Agent 新版本,保存版本记录。原始业务任务会话继续往下执行剩余工作流。后续 Agent 调度运行,就使用修复完成新版本。
情况 B:多次重构测试全部失败。自愈流程终止,原始任务标记失败,输出完整故障快照、诊断报告给到开发者,等待人工介入。
4.3 自愈机制边界与局限性(工程重点)
自愈不是万能机制,这里客观列出技术边界,避免过度理想化理解:
- 自愈只能处理局部步骤变更;如果网站发生颠覆性重构,整个页面逻辑完全重写,自愈无法修复,需要回到 Agent‑Builder 重新编译;
- 自愈会消耗额外 LLM Token 与浏览器资源;大规模并发场景大量故障同时触发,会带来资源开销上涨;
- 自愈有最大重试轮次上限,不会无限循环修复;
- 自愈只针对运行时非预期故障;业务逻辑本身错误,自愈不能修复。例如自然语言描述工作流业务逻辑本身存在错误,编译产出 DSL 业务逻辑就是错的,自愈不会修改业务意图。
- 自愈修改 Agent 版本,平台保存版本变更记录,生产环境建议开启版本审计,跟踪自愈带来代码变更。
5 Airtop 云运行时安全模型
Agent 实例全部运行在 Airtop 云端,安全机制是工程落地重点。
- 会话隔离:每一次 Agent 运行分配独立浏览器实例;会话之间隔离,任务结束浏览器实例销毁,防止数据泄露。
- 密钥机密管理:账号密码、API 密钥这类敏感凭证,不会明文写进 agent.ts DSL 代码,存储在平台机密仓库 agent.secrets,运行时注入,编译产物不会导出明文密钥。
- 网络隔离选项:支持租户隔离运行环境,满足企业安全合规需求。
- 输出审计:每次运行完整日志、轨迹记录,方便安全审计。
- 风险提示:Agent 可以访问外部网页,当 Agent 访问不受信任第三方网站,依旧存在网页侧风险,需要业务层做访问站点白名单管控。
6 性能效率提升底层原理拆解(最高 100 倍)
我们拆解为什么编译式 Agent 可以获得巨大性能提升,从三个维度:LLM 调用次数、Token 消耗、推理时延累积。
6.1 传统逐步骤 Agent 开销模型
假设工作流一共 N 个步骤,每一步都调用 LLM。
- LLM 调用次数:N 次(每次步骤 1 次调用)
- 每一次调用上下文窗口持续膨胀:历史全部步骤观测、网页 DOM 片段全部塞进 Prompt。步骤越多,单次请求 Token 越大。
- 时延:N 次 LLM 网络推理时延累加;叠加工具调用时延。 每一次任务完整执行,全部 N 次 LLM 调用都会重复发生,不管这个任务跑多少次。
6.2 Airtop 编译 Agent 开销模型
1 次编译阶段:调用 K 次 LLM(试探、IR 解析、代码生成)。 后续 M 次重复运行该 Agent:
- 绝大多数步骤不需要 LLM;只有显式 extract 语义节点调用 LLM;故障的时候才触发自愈链路 LLM 调用。 编译成本是一次性成本;M 次运行摊薄编译开销。 当 M 很大(定时任务反复执行),单次任务平均 LLM 开销急剧下降。
基准测试 100 倍效率提升来自:同一个任务反复运行场景,编译一次大量运行。如果 Agent 只运行一次,编译阶段 LLM 开销依旧存在,对比传统 Agent 优势会缩小。
6.3 什么场景下编译式 Agent 收益不明显
- Agent 任务只执行一次,没有重复运行;
- 工作流几乎每一步都需要运行时语义推理,DSL 大量 extract 节点;
- 任务高度动态,每一次运行目标逻辑都发生巨大变化,每次都要重新编译。
这类场景,编译式 Agent 优势有限,传统 Prompt 驱动 Agent 框架反而更合适。
7 编译式 Agent 技术路线的工程短板与现实约束
站在纯技术视角,Airtop Agent‑Builder 方案不是银弹,存在明确短板,在选型的时候需要客观评估。
7.1 流程变更需要重新编译
业务工作流需求发生变化,简单修改 Prompt 不足以生效。需要重新走编译流程,重新浏览器试探,生成新版 agent.ts。不像 Prompt 驱动 Agent,改几句系统 Prompt 就可以改变行为。对于业务逻辑频繁迭代场景,会带来额外工作流。
7.2 DSL 抽象能力存在上限
复杂逻辑(复杂嵌套分支、复杂数据变换),自然语言描述编译生成 DSL 可能不够完善,需要借助编译教学循环人工修正。极度复杂业务逻辑,依旧传统代码开发更可控。
7.3 自愈能力存在天花板
前面提到,站点大规模改版,自愈无法处理,只能重新编译。自愈只适合小幅度页面变更场景。
7.4 闭源平台约束
Airtop Agent‑Builder 整套运行时、浏览器池、自愈子系统属于闭源平台服务。agent.ts 是平台 DSL,不能脱离 Airtop 运行时直接本地运行。开发者不能拿到底层运行时源码做二次修改定制。对比 LangGraph 这类开源框架,自主可控程度更低。
7.5 调试链路复杂度
虽然可以导出 agent.ts 代码,但 DSL 是领域特定语言,调试体验不如原生 Python/TypeScript 程序。出现问题需要结合平台日志、浏览器快照排查。
8 编译式 Agent 与主流 Agent 框架技术选型对比
下面从技术角度对比:LangGraph、AutoGen、Airtop Agent‑Builder。
| 技术方案 | 执行范式 | LLM 调用时机 | 运行载体 | 适合场景 | 主要短板 |
|---|---|---|---|---|---|
| LangGraph | Prompt 驱动为主,支持自定义确定性节点 | 运行时每轮循环调用 LLM;开发者手动编写确定性节点 | 开发者自有基础设施 | 开放式 Agent,复杂多 Agent 协作;需要高度自主可控 | 纯 Agent 原型非确定;生产自动化需要手写大量确定性节点 |
| AutoGen | 多 Agent 对话循环,Prompt 驱动 | 运行时 Agent 之间对话大量 LLM 调用 | 自有服务器 | 多角色对话协作任务 | 网页自动化能力弱;非确定;成本高 |
| Airtop Agent‑Builder | 编译式,DSL 解释执行 | 编译期大量调用;运行时按需调用 LLM | Airtop 云浏览器运行时 | 网页自动化、RPA、定时批量工作流;需要可复现执行 | 闭源平台;动态未知任务场景适配差;变更需要重编译 |
选型建议:
- 如果你的场景是固定网页自动化流程,定时反复执行,追求确定性,优先评估编译式 Agent;
- 如果你的场景是开放式探索任务,任务逻辑每次都不一样,需要本地部署、完全自主可控,优先 LangGraph 等开源框架。
9 工程落地实践建议
基于上面全部技术分析,给出工程实践层面落地建议。
9.1 编译构建阶段实践建议
- 自然语言描述工作流尽可能完整,明确异常分支、过滤条件、终止条件,减少编译阶段歧义;
- 充分利用编译教学循环,观察浏览器试探会话,发现错误立刻人工修正,不要完全依赖 AI 一次生成完美流程;
- 编译完成导出 agent.ts,做好版本备份,记录每一个版本对应业务需求;
- 优先拆分工作流,复杂大流程拆分为多个小 Agent,降低单次编译复杂度。
9.2 运行时与自愈机制使用建议
- 不要把自愈当成万能修复方案,它是故障兜底机制;业务上线前依旧需要充分测试;
- 配置告警,监控 Agent 自愈触发频次。如果自愈频繁触发,代表目标网站页面经常改动,需要评估重新编译 Agent;
- 开启版本审计,跟踪自愈产生 Agent 版本变更;高频生产任务,自愈更新版本之后建议人工复核;
- 密钥全部使用平台机密仓库管理,禁止明文写入 DSL;
- 配置最大并发,管控云浏览器资源消耗。
9.3 性能成本评估建议
- 评估任务重复运行次数:任务重复执行次数越高,编译式 Agent 成本优势越明显;
- 统计工作流内部 extract 语义节点数量,节点越多,运行时 Token 开销越高;
- 做好故障监控,大量故障会触发自愈,带来额外 LLM 开销。
10 编译式 Agent 技术趋势思考
AI Agent 行业现在两条技术路线并行演进。 路线一:Prompt‑driven Agent,运行时大模型全权负责决策推理,适合开放未知场景;绝大多数开源框架走这条路线。 路线二:Compile‑style Agent,LLM 作为编译器,把意图转化为确定性工件,运行时尽量减少模型调用,追求软件一样确定性与性能,Airtop Agent‑Builder 是代表产品之一。
编译式 Agent 思路不是 Airtop 独有,学术界也出现 Agent Compiler 相关研究项目,核心思想都是把推理负担前移到构建阶段,运行阶段降低 LLM 依赖GitHub。
两类路线不是互相替代,而是互补。未来复合架构会成为常态:固定业务流程部分使用编译式 Agent 保证稳定高效;开放式不确定任务部分使用 Prompt 驱动 Agent 做推理决策。
编译式 Agent 目前仍然处于发展阶段,DSL 表达能力、自愈算法能力都会持续迭代。同时闭源平台锁定问题也是行业需要解决的痛点,未来社区可能出现开源 Agent 编译器实现。
11 总结
Airtop Agent‑Builder 核心创新思想:改变传统 Agent “运行时每一步调用 LLM 做决策” 范式。用户使用通俗自然语言描述完整工作流,Agent‑Builder 在编译阶段结合真实云浏览器试探,把自然语言意图编译为 DSL 结构化代码工件;Agent 运行阶段解释执行编译产物,只有少量语义节点才调用 LLM,实现接近传统软件的确定性执行,同时大幅度降低重复运行场景时延与 Token 开销。
当执行出现非预期故障,内置自愈子系统自动采集故障快照、根因诊断、重构出错步骤,并且拉起独立测试会话验证修复效果,修复完成更新 Agent 版本。Agent 全部实例安全运行在 Airtop 自研云端浏览器集群。官方基准测试最高 100 倍效率提升,是特定重复任务场景对比结果,收益大小取决于工作流特性。
编译式 Agent 技术路线有明确适用边界,擅长固定网页自动化 RPA 类业务;但是面对高度动态未知任务,业务频繁大幅度变更场景,存在短板。它不会完全取代 Prompt‑driven Agent 框架,而是 Agent 技术栈中一条重要补充路线。开发者选型的时候,需要结合自身业务场景、可控性需求、任务复用频率综合评估。
💡 互动环节: 读完本文,你如何看待编译式 Agent 这条技术路线?你在实际开发 AI Agent 项目过程中,是否遭遇到 Agent 非确定性、运行成本高、页面改版 Agent 就失效的痛点?欢迎在评论区交流你的项目踩坑经验。 如果本文对你理解 Airtop Agent‑Builder 以及编译式智能体有所帮助,欢迎点赞、收藏,加关注,后续持续更新 AI Agent 底层技术深度解析文章。
4861




被折叠的 条评论
为什么被折叠?



