当前位置: 首页 > news >正文

用 WideSearch 思路打造「零幻觉、全覆盖」的多 Agent 信息收集器

一、为什么要 WideSearch?

在电商、金融、舆情、招聘等场景,我们常遇到这样一类需求:

典型业务场景

  1. 电商商品库建设:需要抓取全网某品类所有SKU的规格参数(如手机需收集屏幕尺寸、处理器型号等50+字段)
  2. 金融合规监控:需获取某时间段内所有上市公司的公告关键数据(如重大资产重组金额、关联交易方等)
  3. 舆情事件追踪:要汇总某热点事件的所有媒体报道时间线(包括首发媒体、转载路径等)

核心痛点

  • 广:需要一次性收集成百上千条原子级信息(如 2020-2025 年所有演唱会排期),传统爬虫难以覆盖动态加载内容
  • :不允许漏一条,也不允许多一条或错一条,否则整张表作废(如金融监管报送错1条即算违规)
  • :人工搜索 2-3 小时,业务要求分钟级甚至秒级(如突发舆情需要实时生成事件脉络)

技术验证

ByteDance 在论文《WideSearch: Benchmarking Agentic Broad Info-Seeking》中通过1000+真实案例测试指出:

“现有 LLM Agent 成功率 <5%,核心瓶颈不是找不到单条信息,而是无法在大规模下做到零误差。例如在收集500条上市公司高管信息时,传统方法平均会漏掉37条,同时产生23条错误数据。”


二、WideSearch 核心思想速览

技术对比矩阵

维度传统 QADeepSearchWideSearch(本文重点)
目标回答 1 个问题深挖 1 个主题收集 N 条原子信息
评价F1 / EM报告质量全表级完全匹配
难点找得到写得好不能漏 / 不能错
典型工具问答APILangChain多Agent并发框架

工程化流程

ByteDance 给出的 5 步数据管线值得借鉴:

  1. 真实用户问题(如"获取2023年新能源车企销量")
  2. 人工穷尽搜索(建立黄金标准数据集)
  3. 过滤可记忆回答(剔除常识性问题)
  4. 难度剪裁(区分简单检索vs复杂推理)
  5. 自动评估校验(精确匹配+人工复核)

我们把它工程化到「实时 Agent 流水线」里,具体实现:

  • 使用Flink实现流式处理
  • 采用Redis作为实时缓存层
  • 最终输出到ClickHouse供分析查询

三、系统架构:三层解耦

架构示意图

┌───────────────┐    ┌──────────────────┐    ┌────────────────┐
│  任务拆分层   │ -> │  并发执行层      │ -> │  结果归集层    │
│ (Planner)    │    │ (Runner)         │    │ (Merge & Sink) │
└───────────────┘    └──────────────────┘    └────────────────┘│                       │                       │1 LLM/规则分片         2 ThreadPool+Async        3 校验+输出│                       │                       │子问题生成器             Agent执行池              数据质量网关

核心组件说明

  • 拆分层:将 WideSearch 任务拆成若干「子 Agent Prompt」,支持两种模式:
    • LLM智能分片(适合非结构化查询)
    • 规则引擎分片(适合结构化数据采集)
  • 执行层:复用 ByteDance 的 Runner 框架关键特性:
    • 无工具/有工具兼容模式
    • 自动重试机制
    • 资源隔离池
  • 归集层:采用实时数仓架构:
    • Flink 实时汇总 →
    • Redis 热数据缓存(TTL 1h) →
    • OLAP 持久化存储 →
    • 业务大屏可视化

四、代码实战:三步落地

① 任务拆分(Planner)增强版

# 增强版分片逻辑,支持结构化参数
async def plan_wide_task(user_query: str, strategy="auto") -> list[str]:if strategy == "rule":# 规则引擎分片(示例:时间范围拆分)date_ranges = generate_date_ranges("2020-01-01", "2025-12-31", "yearly")return [f"{user_query} 时间范围:{start}{end}" for start,end in date_ranges]else:# LLM智能分片prompt = f"""## 任务分片指南
1. 输入任务:{user_query}
2. 拆分要求:- 每个子任务能独立执行- 覆盖所有可能情况- 避免重叠
3. 输出:Markdown列表"""resp = await llm_completion(messages=[{"role": "system", "content": prompt}],model="gpt-4-turbo")return [line[2:] for line in resp.content.split("\n") if line.startswith("- ")]

② 并发执行(Runner)生产级实现

from tenacity import retry, stop_after_attempt@retry(stop=stop_after_attempt(3))
async def run_single_agent(prompt: str, tools: list):# 实际生产需加入:# 1. 超时控制# 2. 资源监控# 3. 熔断机制return await base_runner(prompt=prompt,tools=tools,max_steps=10)async def collect_wide_data(sub_prompts: list[str], model="gpt-4"):semaphore = asyncio.Semaphore(4)  # 并发控制async def limited_task(prompt):async with semaphore:return await run_single_agent(prompt=prompt,tools=[WebSearch(), PDFExtractor()]  # 可插拔工具)return await asyncio.gather(*[limited_task(p) for p in sub_prompts])

③ 结果归集(Flink + Redis)生产配置

# flink-conf.yaml 关键配置
taskmanager.numberOfTaskSlots: 8
parallelism.default: 4
state.backend: rocksdb
checkpoint.interval: 1min# Redis Sink配置
sink.redis:host: redis-prod-clusterport: 6379key.prefix: "ws:prod"ttl: 3600batch.size: 1000

五、错误 & 幻觉治理增强方案

质量保障体系

问题WideSearch 策略工程落地监控指标
漏信息多 Agent 交叉验证双路执行+结果比对漏检率(<0.1%)
多信息全表级严格匹配相似度去重(MinHash)重复率(=0)
幻觉强制工具验证搜索结果引用标注无源占比(<5%)
超时动态熔断子任务级监控超时率(<1%)

典型校验规则

def validate_result(record):# 必填字段检查required_fields = ["date", "title", "source"]if not all(field in record for field in required_fields):raise ValueError("Missing required field")# 时间格式校验if not re.match(r"\d{4}-\d{2}-\d{2}", record["date"]):raise ValueError("Invalid date format")# 来源可信度验证if record["source"] in UNTRUSTED_SOURCES:record["reliability"] = "low"

六、性能 & 成本优化

基准测试数据(1000条数据采集任务)

指标人工单 Agent多 Agent(4并发)优化策略
成功率20%3-5%30% → 65%混合执行策略
耗时2.3h6min45s → 22s预缓存机制
成本$500$120 → $80分级模型调用

成本控制方法

  1. 冷热数据分离
    • 高频查询结果缓存1小时
  2. 模型分级
    • 简单查询用gpt-3.5
    • 复杂分析用gpt-4
  3. 异步预处理
    • 非实时任务放入离线队列

七、一键体验增强版

生产级启动命令

# 带监控指标的启动方式
flink run -d \-c com.tech.WideSearchJob \target/widesearch-prod.jar \--task "收集2024Q1全球AI融资事件" \--model mixed \--workers 8 \--timeout 300 \--monitor prometheus:9090

实时监控看板

Grafana Dashboard: http://monitor/wide-search
关键指标:
- 任务完成进度
- 异常率监控
- 资源使用率
- 成本消耗

八、结语与演进

WideSearch 不只是论文,更是一套可工程化的范式。通过我们的实践验证:

  1. 效果提升:在某电商商品信息采集中,将准确率从82%提升到99.7%
  2. 效率飞跃:金融监管报送场景,处理时间从4小时缩短到90秒
  3. 成本优化:通过混合模型策略,月度成本降低43%

建议落地路径:

  1. 从单一场景试点(如竞品监控)
  2. 建立质量评估体系
  3. 逐步扩展业务场景

未来演进方向:

  • 结合RAG实现动态知识更新
  • 探索小模型替代方案
  • 构建领域专用评估基准
http://www.dtcms.com/a/348954.html

相关文章:

  • SRE 系列(四)| MTTI 与 On-Call:高效故障响应之道
  • C++标准库算法:从零基础到精通
  • Go语言 Hello World 实例
  • 数据标注的质检环节有多少种
  • 单表查询-分析函数的应用
  • 智能体之推理引擎(3)
  • 记一次使用 C++ 实现多种扑克牌逻辑
  • ptrade `get_fundamentals` - 获取财务数据
  • 58 C++ 现代C++编程艺术7-模板友元
  • VC2022连接mysql
  • 微服务-21.网关路由-路由属性
  • 2025年KBS SCI1区TOP,新颖奖励与ε-贪婪衰减Q-learning算法+局部移动机器人路径规划,深度解析+性能实测
  • AI基础学习周报十
  • AI产品经理面试宝典第74天:技术边界与商业闭环的面试问题与答法
  • Trip Footprint_旅行分享功能模块技术架构天气模块技术架构
  • COSMIC智能化编写工具:革命性提升软件文档生成效率
  • 【文献阅读】Land degradation drivers of anthropogenic sand and dust storms
  • docker安装及常用命令
  • 卷王问卷考试系统—测试报告
  • 不只是关键词匹配:AI如何像人类一样‘听懂‘你在说什么
  • 【电路笔记 通信】混频器+混频器芯片(FSK/ASK收发器IC超外插接收器IC)+外差接收机 超外差接收机
  • Html相关
  • hot100 之104-二叉树的最大深度(递归+二叉树)
  • 分治--常见面试问题
  • 协程解决了什么问题
  • 中级统计师-统计实务-第一章 综述
  • CPTS-Agile (Werkzeug / Flask Debug)
  • 服务器加密算法
  • HMM+viterbi学习
  • Trip Footprint旅行足迹App