问题所在
LangGraph代理默认从静态向量存储或缓存数据检索。当工作流需要当前市场数据、竞争对手信息或实时事件时,代理会产生幻觉或返回过时信息。
Scavio 解决方案
在LangGraph状态图中添加Scavio搜索节点。节点接收上游节点的查询,获取实时SERP结果,将结构化数据注入图状态供下游节点使用。
之前
LangGraph代理限于过时的向量存储数据,无法回答关于时事、当前定价或最新产品发布的问题。
之后
LangGraph图中的专用搜索节点按需获取实时结果,给代理提供最新的网络数据。
适用人群
构建研究和分析管道的LangGraph开发者。
核心优势
- 即插即用的搜索节点适用于任何LangGraph状态图
- 工作流任何步骤都可获取实时网络数据
- 结构化输出兼容LangGraph状态格式
- 跨Google、Reddit、YouTube的多平台搜索
Python 示例
Python
import requests
from typing import TypedDict
class SearchState(TypedDict):
query: str
search_results: list
grounded_answer: str
def scavio_search_node(state: SearchState) -> dict:
"""LangGraph node that fetches live search results."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": SCAVIO_API_KEY, "Content-Type": "application/json"},
json={"query": state["query"], "platform": "google", "limit": 8}
)
results = resp.json().get("results", [])
return {
"search_results": [
{"title": r["title"], "url": r["link"], "snippet": r.get("snippet", "")}
for r in results
]
}
# Usage in LangGraph:
# graph.add_node("search", scavio_search_node)
# graph.add_edge("planner", "search")
# graph.add_edge("search", "synthesizer")JavaScript 示例
JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
fetch('https://api.scavio.dev/api/v1/search', {method: 'POST', headers: H, body: JSON.stringify({query: 'example', country_code: 'us'})}).then(r => r.json()).then(d => console.log(d.organic_results?.length + ' results'));使用的平台
包含知识图谱、PAA和AI概览的网页搜索
来自任何subreddit的社区、帖子及线程评论
YouTube
包含转录和元数据的视频搜索