让失败变得安全:一个用于开放网络数据收集的受约束、可验证的智能体框架
摘要
本文提出了一个用于开放网络数据收集的受约束、可验证的智能体框架,该框架将LLM的输出从自由格式的代码转换为类型化的JSON收集器配置,在80个任务上实现了零执行阶段LLM令牌和低延迟。
arXiv:2607.00035v1 公告类型:新
摘要:LLM和智能体可以从自然语言需求中生成网络爬虫,但由于依赖错误、选择器失效、模式不匹配和页面结构异构,直接生成仍然不可靠。我们提出了一个受约束、可验证的智能体框架,将LLM的输出从自由格式的代码转换为类型化的JSON收集器配置,结合了六种收集器分类法、模板和实用函数约束、静态Airflow DAG执行、基于规则的质量检查以及结构化反馈纠正。在138个任务上的实验表明,该分类法支持基于描述的需求类型化,同时确认稳定的实例化需要完成超出初始描述的来源、字段和执行约束。在80个独立来源验证的任务上,该框架以零执行阶段LLM令牌和最低的平均挂钟时间运行,用适度的单次质量换取了可重用、确定性和可验证的执行路径,适用于重复的计划性收集。这些结果将该框架定位为重复开放网络数据收集的可重用、低成本且可验证的执行路径。
查看缓存全文
缓存时间: 2026/07/02 05:40
# 让失败变得安全:一个面向开放网页数据采集的约束可验证智能体框架
来源:https://arxiv.org/html/2607.00035
11institutetext:中国科学院计算技术研究所,北京,中国
11email:chenbo01@ict\.ac\.cn
###### 摘要
大语言模型和智能体可以根据自然语言需求生成网络爬虫,但直接生成因依赖错误、选择器失效、模式不匹配以及异构页面结构而仍然不可靠。我们提出一个约束、可验证的智能体框架,将LLM的输出从自由形式的代码转变为类型化的JSON采集器配置。该框架结合了六类型采集器分类法、模板和工具函数约束、静态Airflow DAG执行、基于规则的质量检查以及结构化反馈纠正。在138个任务上的实验表明,该分类法支持基于描述的需求类型分类,同时确认稳定的实例化需要完成超出初始描述的源、字段和执行约束。在80个独立源验证的任务上,该框架以零执行阶段LLM token开销和最低的平均挂钟时间运行,以适度的单次质量换取可复用、确定且可验证的执行路径,适合重复的定时采集。这些结果将框架定位为一种可复用、低成本、可验证的执行路径,用于重复的开放网页数据采集。
## 1 引言
开放网页数据——来自新闻、政府公告、电子商务和学术出版物的公开信息——推动了对大规模自动化采集日益增长的需求。传统流水线依赖人工劳动:需求分析、网站结构检查、爬虫编码和验证,面临开发周期长和可复用性低的问题。
近期大语言模型和智能体的进展提供了一条新路径:理解自然语言需求、生成爬虫代码并执行验证任务。然而,直接应用被证明不可靠。核心张力在于异构网页的**结构脆弱性**与LLM代码生成的**随机不一致性**之间。如果没有采集器类型的约束,智能体在任务分解上会出现偏差;LLM生成的爬虫可能包含依赖错误、选择器失效以及输出模式不一致。
为解决这一问题,我们认为关键不在于追求完美的智能体推理,而在于使采集流水线**可验证**——使得每个阶段的输入和输出都可以被检查、度量和审计。我们通过三个支柱来实现这一点:(1) 带明确功能界限的采集任务类型化建模;(2) 模板和工具函数约束,将智能体从自由形式代码生成转变为配置生成;(3) 在规模执行前进行小样本验证和质量反馈,形成“生成–执行–检查–修复”闭环。
我们的贡献包括:
1. 1.一个**六类型采集器分类法**(搜索、列表、详情、API、交互、文件),具有明确的功能界限和组合规则。
2. 2.一个**约束智能体框架**,将需求理解、实例化、验证、质量检查和反馈纠正组织成可验证闭环,在模板、插槽和Schema约束下生成JSON配置——而非自由形式代码。
3. 3.**多层级实验验证**,涵盖需求类型分类、采集器实例化、基于80个验证任务的质量-成本对比(与运行时LLM基线比较)、反馈纠正以及Airflow兼容性测试。
研究围绕三个问题展开:**RQ1**:如何将采集需求建模为类型化任务;**RQ2**:如何在约束下实例化采集器以获得可验证、可复用、可调度的配置;**RQ3**:如何在规模执行前通过验证和反馈拦截低质量配置。这些问题通过第3-5节的框架设计得到论述,并在第7节中回答。该框架体现了一种设计哲学:**受控的、显式的失败优于不受控的、沉默的成功**——通过类型约束、Schema验证和基于规则的质量把关,失败成为可审计、可追踪的信号。
## 2 相关工作
### 2.1 开放网页数据采集
传统的网页数据采集建立在Scrapy、BeautifulSoup、Selenium和Playwright之上,通过工作流引擎编排。核心挑战是网站的异构性和波动性,这迫使大量人工投入[11,7]。近期对91篇论文的综述[12]指出,84%出现在2024-2025年,趋势从基于规则的方法转向语义方法和智能体方法。诸如ScrapeGraphAI[21]和Crawl4AI[5]等工具利用LLM生成爬虫逻辑,但引入了执行不可预测性。MacroBench[15]在681个任务上测试LLM网页自动化:简单任务达到91.7%成功率,但复杂多步骤工作流得分为0.0%。Webscraper[9]对索引-内容架构使用五阶段提示的多模态LLM。AutoScraper[10]提出带有可执行性指标的渐进式理解。这些工作展示了向基于智能体的抓取的快速演变,但在复杂场景中无约束的代码生成仍然不可靠。
### 2.2 大语言模型、代码生成与约束
大语言模型展现出强大的代码生成能力[4,17,20],但直接生成的代码存在API错误、依赖不一致和格式不匹配等问题。Reflexion[22]和Self-Refine[16]使用基于语言反馈的反思,但Yu等人[26]指出LLM常常无法识别自己代码中的错误,揭示了自我纠正的明确边界。在约束生成方面,PARSE[18]优化了用于LLM提取的JSON Schema,结合静态和LLM护栏,准确率提升高达64.7%。llm-scraper[13]使用Zod Schema约束Playwright DOM选择器代码。两者都关注单层约束。我们的框架引入了四层嵌套约束层次结构(类型→模板→工具函数→验证),在Schema级限制之外增加了采集器类型和工具函数复用约束。
### 2.3 智能体与网页自动化
ReAct[25]范式将推理与行动交织用于网页任务,通过WebVoyager[8]和WebArena[27]等基准进行评测。在实际采集实践中,BardeenAgent[2]提出“记录-回放”:LLM在录制过程中学习提取模式,然后确定性程序无需LLM调用即可回放,在WebLists上达到66.2%的召回率,每行成本仅为三分之一。CyberScribe[6]结合LLM、视觉Transformer和强化学习用于动态多语言采集。AutoData[14]使用八个专用智能体配合OHCache减少智能体间token开销,但其工程智能体仍然生成自由形式代码,没有采集器类型分类法或调度原生质量把关。与ReAct式的端到端浏览以及BardeenAgent的操作序列解耦不同,我们仅在需求理解和采集器实例化阶段调用LLM,而执行通过静态DAG进行,解耦的是JSON配置而非浏览器操作序列。
### 2.4 约束生成与质量反馈
数据质量研究强调准确性、完整性、一致性和适用性[24,19]。在涉及LLM的流水线中,质量问题还包括选择器错误、字段映射错误和执行异常。AI Committee[23]使用四个专用智能体进行协同验证,实现了78.7%的完整性和高达100%的精确率。Berkane等人[3]通过Pydantic Schema约束LLM提取,辅以源接地验证和基于LLM的异常检测,F1提升幅度达+74.3和+38.5个百分点,但质量控制仍依赖LLM的主观判断。
在反馈纠正方面,Reflexion[22]和Self-Refine[16]等方法使用内在自我纠正,而Agent-R[1]使用蒙特卡洛树搜索。然而,LLM在自我错误检测方面常常失败[26]。我们的方法有根本不同:我们采用基于规则的质量检查作为外部评估器,将质量报告转换为结构化的反馈约束(而非自然语言反思),使用失败黑名单进行单调剪枝,并在这些约束下让智能体重新生成。这种“外部规则评估→结构化约束→黑名单剪枝→约束重新生成”范式还引入了原始页面存档比较,以区分**源缺陷**和**解析错误**。
## 3 问题定义
给定用户的任务初始描述\(d\)(自然语言,可能包含部分结构化信息),系统必须完成需求理解、采集器类型选择、实例化、验证执行、调度和质量反馈。
设完整任务表示为\(R=(d,s,x,f,c,o)\),其中\(s\)是目标源标识符,\(x\)是通过主动探测获得的源上下文,\(f\)是字段集合,\(c\)表示采集约束,\(o\)是输出格式。设\(\mathcal{M}=(C,P,V)\)为受约束的配置元组,其中\(C\)是采集器类型或组合,\(P\)包含运行时参数,\(V\)指定验证阈值。系统输出为\(O=(\mathcal{M},E,D,Q)\),其中\(E\)表示Airflow DAG执行,\(D\)是采集到的数据,\(Q\)是质量反馈报告。
与无约束代码生成不同,我们将实例化表述为模板约束的插槽赋值。设\(\mathcal{T}\)为模板空间,\(\Theta_k\)为模板\(\mathcal{T}_k\)的插槽空间。系统必须找到\(\theta_k\in\Theta_k\),使得\(\mathcal{M}=\mathrm{Instantiate}(\mathcal{T}_k,\theta_k)\)且\(\mathrm{Check}(\mathcal{M})=\mathrm{True}\)。
## 4 采集器类型分类法
该分类法遵循五个原则:入口导向、数据形状导向、单一职责、明确界限、调度器可组合性。常见的组合包括:搜索+详情(关键词新闻)、列表+详情+文件(公告)、交互+列表+详情(动态表单)。
**搜索**:通过关键词从搜索入口发现候选URL。输入关键词和时间范围,输出结果链接和标题。边界:不提取内容。典型场景:站内搜索。
**列表**:遍历分页列表页以发现详情页链接。输入栏目URL和页码范围,输出列表项和详情链接。边界:不进行深层内容提取。典型场景:新闻/公告列表。
**详情**:从单个详情页提取结构化字段(标题、正文、作者、时间戳)。输入详情页URL。边界:不进行大规模URL发现。典型场景:新闻/公告详情页。
**API**:调用公共API并映射响应字段。输入端点URL和请求参数,输出结构化记录。边界:不进行浏览器交互。典型场景:JSON REST API。
**交互**:对动态渲染页面执行点击、文本输入和页面操作。输入页面URL和动作序列,输出渲染后的数据。边界:不绕过认证或验证码。典型场景:动态加载页面。
**文件**:下载并解析公共可访问的文件(PDF、Excel)。输入文件URL,输出文件文本和元数据。边界:不进行语义判断。典型场景:PDF/Excel附件。
## 5 约束智能体采集框架
### 5.1 概述
我们的框架通过四个约束类别将无约束的智能体采集转变为受约束的闭环:(1) **任务类型约束**——需求理解智能体确定采集器类型,防止没有清晰采集模式的配置生成;(2) **配置结构约束**——实例化智能体受模板插槽和JSON Schema约束;(3) **工具复用约束**——框架通过模板复用预构建的工具函数,而不是直接生成请求、解析或清洗代码;(4) **执行反馈约束**——每个新配置在规模执行前必须通过小样本验证和质量评估,失败时反馈触发纠正。
该框架由五个模块组成:需求理解智能体、采集器实例化智能体、Airflow验证/规模执行、质量检查、反馈纠正(图1)。
[图1:约束智能体采集框架架构图]
(图中流程:用户初始任务描述d → 需求理解智能体 → 完整任务表示R → 采集器实例化智能体 → 配置M(包含C,P,V) → Airflow执行(验证阶段) → 质量检查 → 通过?→ 是→ Airflow执行(规模阶段) → 结果D与质量报告Q;否→ 反馈约束Γ_t → 回到采集器实例化智能体)
图1:约束智能体采集框架架构
### 5.2 需求理解智能体
需求理解智能体接收用户的初始描述\(d\),完成\(R=(d,s,x,f,c,o)\)。对于显式提供的组件,智能体直接写入插槽;对于缺失的组件,它探测目标站点(首页、导航、robots/sitemap、API文档、样本页面)以提取页面标题、栏目结构、候选URL、DOM摘要、分页线索和样本记录,压缩为源上下文\(x\)。
设\(\mathrm{Probe}\)为探测函数:
\[
x=\mathrm{Probe}(d),\quad (s,f,c,o,\kappa)=\Phi(d,x),\quad R=(d,s,x,f,c,o),
\]
其中\(\kappa\)表示采集器类型或组合,\(\Phi\)分解为逐插槽的子映射。输出被约束为固定的Schema,具有类型化插槽,包括任务类型、采集器类型、目标源、源上下文、所需字段、约束、输出模式、验证配置和置信度。
### 5.3 采集器实例化智能体
该智能体使用“参考编码 + 模板插槽填充”:模板硬编码了Airflow结构、工具函数骨架、错误处理和持久化;智能体填充URL、选择器、API参数、字段映射和清洗规则。在第一轮中,\(R\)驱动模板检索和插槽填充;在纠正轮次中,质量报告\(Q\)被转换相似文章
我给LLM一个真实浏览器和一个目标,而非脚本:它会填写表单并返回结构化JSON
一个开源代理,使用LLM控制真实浏览器填写表单并提取结构化数据,每页仅需极少的令牌。
大规模安全测试LLM智能体:从风险发现到基于证据的验证
本文介绍了Vera,一个面向LLM智能体的端到端自动化安全测试框架,它结合了文献驱动的风险发现、安全案例的组合式构建以及基于证据的验证。在四个智能体框架上的评估揭示了显著的安全缺陷,在多通道攻击下平均攻击成功率高达93.9%,同时发布了包含1600个可执行安全案例的Vera-Bench。
AI代理能完成任务但仍然算失败吗?
本文引入“验证税”(Verifier Tax)概念,将AI代理的结果分类为安全成功、不安全成功或失败,并为使用工具的LLM代理提出了一种双层验证架构。
迈向可安全审计的大模型智能体:一种统一的图表示方法
本文提出了 Agent-BOM,一种用于基于大语言模型(LLM)的智能体系统进行安全审计的统一图表示方法。它通过建模静态能力和动态运行时状态,解决了事后审计中的语义鸿沟问题,能够检测记忆投毒和工具误用等复杂的攻击链。
验证者税:工具使用型LLM智能体中依赖于任务步数的安全与成功权衡 [R]
本文提出了一个用于工具使用型LLM智能体的安全评估框架,引入了“验证者税(Verifier Tax)”的概念——一种依赖于任务步数的安全与任务完成之间的权衡。文章提出了一种双层验证架构,并使用Tau-bench场景展示了验证如何减少不安全成功,但随着任务步数增加也会降低任务完成率。