用抽象类统一多搜索 API,错误返回而非抛异常
· 阅读需 5 分钟
在为客户构建 AI Agent 平台时遇到此问题:需要支持多个搜索提供商(Tavily、Serper、Brave、Bing),同时确保工具调用失败时不会中断 Agent 对话流程。
TL;DR
- 定义
SearchProvider抽象基类 +SearchResult数据模型,统一接口和输出格式 - 每个提供商继承基类,实现
search()方法,内部做响应字段映射 - 关键设计:错误时返回包含错误信息的
SearchResult对象,而非抛异常