Skip to content

feat: trpc-agent框架web工具支持tavily#199

Open
weimch wants to merge 1 commit into
trpc-group:mainfrom
weimch:feature/weimch_dev
Open

feat: trpc-agent框架web工具支持tavily#199
weimch wants to merge 1 commit into
trpc-group:mainfrom
weimch:feature/weimch_dev

Conversation

@weimch

@weimch weimch commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
  • 接入tavily到websearch及webfetch工具
  • 补充单测及文档

- 接入tavily到websearch及webfetch工具
- 补充单测及文档
@CongkeChen

Copy link
Copy Markdown
Contributor

AI Code Review

审查完成。我先核对关键调用链(SSRF、缓存、provider 分发、payload 构造与解析),下面给出结论。

发现的问题

⚠️ Warning

  • trpc_agent_sdk/tools/_websearch_tool.py:597-609:649include_images 双来源不一致,可能静默产生额外费用
    • 请求体里 include_images 先取自调用参数(:603),随后被 tavily_extra_params 整体 update 覆盖(:609);但解析阶段用的是局部变量 include_images:649,来自 args,默认 False)。若调用方在 tavily_extra_params 里固化了 include_images: True(文档把该字段列为可透传项),每次请求都会让 Tavily 返回图片(更慢、更贵、响应更大),但代码因 if include_images: 为假而把图片全部丢弃,用户拿不到也察觉不到原因。建议统一以「最终生效的 include_images」驱动解析,例如 effective_include_images = include_images or bool(self._tavily_extra_params.get("include_images")),并据此判断解析。

💡 Suggestion

  • trpc_agent_sdk/tools/_webfetch_tool.py:623-628:Tavily Extract 路径硬编码 include_images: False 后再 update(extra_params),但该工具只返回 raw_content/content 文本,从不解析图片。即便用户通过 tavily_extra_params={"include_images": True} 传入,图片数据也会被丢弃。建议要么不在 Extract payload 里默认塞该字段,要么在文档/参数说明里明确该参数对 WebFetchTool 无效,避免误导。

总结

整体改动结构清晰,SSRF 校验、域名策略、缓存与凭据回退在 Tavily 路径上基本对齐了既有 direct/google 路径,测试覆盖也较充分;未发现阻塞级问题。主要风险是 include_images 在透传参数与解析逻辑间的口径不一致,可能导致额外开销与预期落空,建议合并修复。

测试建议

  • 建议补一条用例:WebSearchTool(provider="tavily", tavily_extra_params={"include_images": True}) 且调用时不传 include_images,断言返回结果中 images 是否符合预期(当前会为空),以固定该口径的预期行为。

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