Skip to content

feat: 集成 You.com 网络搜索 API 作为 LangGraph Agent 工具 - #73

Open
tra371 wants to merge 1 commit into
bulolo:mainfrom
Cooperation-org:feat/youcom-web-search
Open

feat: 集成 You.com 网络搜索 API 作为 LangGraph Agent 工具#73
tra371 wants to merge 1 commit into
bulolo:mainfrom
Cooperation-org:feat/youcom-web-search

Conversation

@tra371

@tra371 tra371 commented Jul 28, 2026

Copy link
Copy Markdown

概述

为 CatWiki LangGraph ReAct Agent 新增 search_web 工具,通过 You.com Search API(https://ydc-index.io/v1/search)从互联网检索信息,作为内部知识库检索的补充通道。

主要改动

  • 新增 YoucomSearchClientapp/core/ai/providers/youcom.py):基于 httpx.AsyncClient 的 You.com API 客户端,429(限流)/401(认证失败)/其他错误均静默降级,不影响主流程。
  • 新增 search_web 工具app/core/ai/graph/tools/youcom_search.py):LangGraph @tool,Agent 在内部知识库无法满足时调用,检索实时信息。
  • 配置项config.py / .env.example):
    • YOUCOM_API_KEY — API 密钥
    • YOUCOM_SEARCH_ENABLED — 是否启用(默认 false)
    • YOUCOM_SEARCH_TOP_K — 每次搜索返回结果数(默认 10)
  • 系统提示词更新prompts.py):新增第七条规则,指导 Agent 在需要实时资讯时调用 search_web
  • 生命周期管理lifecycle/manager.py):shutdown 时关闭 You.com 客户端连接。

测试建议

  1. 配置 YOUCOM_API_KEYYOUCOM_SEARCH_ENABLED=true
  2. 向 Agent 提问需要实时信息的问题(如"今天有什么新闻"),验证 search_web 被调用
  3. 验证 Web 搜索结果正确附加来源(URL、标题)并参与回答引用
  4. 未配置 API Key 或 YOUCOM_SEARCH_ENABLED=false 时,Agent 行为不受影响

涉及的代码位置

  • 新增:app/core/ai/providers/youcom.py
  • 新增:app/core/ai/graph/tools/__init__.py
  • 新增:app/core/ai/graph/tools/youcom_search.py
  • 修改:app/core/ai/graph/logic.py — 工具注册
  • 修改:app/core/ai/prompts.py — 提示词
  • 修改:app/core/infra/config.py — 配置项
  • 修改:app/core/lifecycle/manager.py — 客户端关闭
  • 修改:.env.example — 配置模板

- 新增 YoucomSearchClient (providers/youcom.py):httpx.AsyncClient 调用
  YDC Index API,429/401/其他错误均优雅降级,不影响主流程。
- 新增 search_web LangGraph 工具 (graph/tools/youcom_search.py):Agent
  可在内部知识库无法满足时从互联网检索实时信息。
- config.py 新增 YOUCOM_API_KEY、YOUCOM_SEARCH_ENABLED、YOUCOM_SEARCH_TOP_K
  三个配置项,默认关闭。
- prompts.py 系统提示词新增第七条规则,指导 Agent 在需要实时信息时
  调用 search_web。
- lifecycle manager  shutdown 钩子新增 youcom_search_client.aclose()。
- .env.example 新增 §8.1 You.com Search 配置块。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tra371

tra371 commented Jul 28, 2026

Copy link
Copy Markdown
Author

针对该问题的实现 - #72

@bulolo

bulolo commented Jul 28, 2026

Copy link
Copy Markdown
Owner

ok,增加mcp的时候我会看看

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants