96SEO 2026-08-09 17:35 5
LLM 的知识有截止日期。你问它 “LangGraph 当前版本是多少”,它只能告诉你训练数据里的版本。Web Agent 解决这个问题:让 Agent 真正上网查,拿到实时数据再回答。
但 “上网查” 比听起来复杂:

上述四点是实际使用 LLM 进行网页浏览时最常碰到的阻碍:
这四个问题对应四个工程设计:HTML 清洗、Token Budget、Step Limit、URL 错误处理。这篇文章把这些拼成一个可运行的 Web Agent。
整体是标准的 LangGraph 双节点图:
使用者问题 │ ▼
┌─────────────────────────────────────┐
│ agent_node │
│ SystemPrompt + messages → LLM │
│ bound_llm.invoke │
└────────┬────────────────────────────┘
│ 有 tool_calls?┌────┴─────┐ 是 否
│ ▼ ▼
tools_node END
web_search /fetch_page │
└──→ agent_node
State 只有两个字段:
class WState:
messages: Annotated # 累积消息
说到steps。int # 已用步数
steps 是 Web Agent 特有的计数器——普通 Agent 不需要显式计步,但 Web Agent 可能在页面间无限跳转,必须有硬限制。
@tooldef web_search -> str:
"""
Search web with DuckDuckGo.
Returns up to N results,each with title,snippet,and URL.
Use URLs from results to call fetch_page — never invent URLs.
"""
try的观点是,resp = requests.get(
从"https来看,//html.duckduckgo.com/html/",params={"q": query},headers=HEADERS,timeout=10,)
soup = BeautifulSoup
results =
for i。block in enumerate):
if i>= 5:
break
title = or soup.new_tag).get_text
snippet = or soup.new_tag).get_text
url_raw = or soup.new_tag).get_text
url = f"https://{url_raw}" if url_raw and not url_raw.startswith else url_raw
results.append
return "
".join if results else "No results found."
except Exception as exc:
return f"Search error: {exc}"
用的是 DuckDuckGo HTML 接口,不需要 API Key。解析 .result CSS 类。提取标题、摘要、URL,返回结构化文本给 LLM。
工具描述里加入关键指令:“Use URLs from results to call fetch_page — never invent URLs`”。这是防止 URL 幻觉的第一道防线——在 Prompt 层面明确告诉模型 URL 必须来源于搜索结果。话说回来,
@tooldef fetch_page -> str:
"""
Fetch a web page and return its cleaned text .
Only call with real URLs obtained from web_search results.
"""
再看try。resp = requests.get
resp.raise_for_status
full_text = clean_html
orig_tokens = count_tokens
displayed = truncate_to_budget
shown_tokens = min
return (
f"
"
f"
"
f"{displayed}"
)
except requests.HTTPError as exc:
return f"HTTP {exc.response.status_code} — could not fetch {url}"
except requests.ConnectionError:
return f"Connection error — {url} may not exist or be unreachable"
except Exception as exc:
return f"Error fetching {url}: {type.__name__}: {exc}"
再看分三步,
clean_html: 使用 BeautifulSoup 去掉 作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback