pi-doubao-search
pi 扩展:doubao_web_search —— 豆包搜索(火山引擎联网搜索 Custom 版)网页/图片搜索工具,支持时间范围、限定站点、权威度过滤与正文返回。
Package details
Install pi-doubao-search from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-doubao-search- Package
pi-doubao-search- Version
0.1.1- Published
- Sep 30, 2026
- Downloads
- 288/mo · 46/wk
- Author
- aiconductor
- License
- MIT
- Types
- extension
- Size
- 110.2 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
doubao_web_search(pi 扩展)
用**豆包搜索(火山引擎联网搜索 · Custom 版)**检索中文网页与图片的 pi 工具。
版本:0.1.1 | 2026-09-30 建 | 本机路径:
~/.pi/agent/extensions/doubao-search/| npm:pi-doubao-search
它解决什么
- pi 自带的
web_search走境外搜索源,中文站点(政府/税务/媒体/百科)覆盖与时效一般; 本工具直连火山官方端点,中文站点召回更好,并且能按权威度过滤(政策、医疗、金融场景很关键)。 - 支持时间范围、限定/屏蔽站点、行业搜索、Query 改写;图片搜索直接给图片直链。
密钥(只走环境变量)
扩展只从环境变量 DOUBAO_SEARCH_API_KEY 读密钥,配置文件里不放密钥。
# Windows,配置后重开终端(以及 pi / pi-web)
setx DOUBAO_SEARCH_API_KEY "<火山控制台 → 联网搜索 → API Key 管理(订阅套餐页签)里的 Key>"
⚠️ 火山有两套 Key,不能混用:
| Key 类型 | 能打的端点 | 说明 |
|---|---|---|
| 订阅套餐(预付费) | /search_api/web_search(本扩展用的 Custom 版) |
打 Global 版会返回 10409 |
| 按量后付费 | /search_api/global_search(Global 版)、Custom 版 |
—— |
装法
pi install npm:pi-doubao-search
也可以用本地目录:把本目录放到 ~/.pi/agent/extensions/doubao-search/(pi 自动发现含 index.ts 的子目录,无需安装命令),改完代码在 pi 里 /reload 生效。临时加载一份:pi -e <path>/index.ts。
⚠️ 别同时用两种方式:本地目录和 npm 包同时存在会注册两个同名 doubao_web_search 工具。
维护者继续用本地目录;想验证「别人装完是什么样」,用 pi -e npm:pi-doubao-search 或独立的 PI_CODING_AGENT_DIR。
用法
工具名 doubao_web_search,参数(除 query 外都可选):
| 参数 | 适用 | 说明 |
|---|---|---|
query |
全部 | 搜索词,1~100 字(超长按官方行为截断)。不支持多词搜索,写一句完整意图。 |
searchType |
全部 | web(默认,最多 50 条/默认 10 条)或 image(最多 5 条,返回图片直链)。 |
count |
全部 | 返回条数:web 1 |
timeRange |
web | OneDay / OneWeek / OneMonth / OneYear,或 2025-01-01..2025-12-31。 |
sites / blockHosts |
web | 限定 / 屏蔽站点(完整域名,≤20 / ≤5 个),例 ["gov.cn"]、["zhihu.com"]。 |
authInfoLevel |
web | 1 = 只在「非常权威」内容里搜;0 = 不限制(默认)。 |
industry |
web | finance / game / health / gov(结果变窄,过滤火山如意卡片)。 |
queryRewrite |
全部 | 口语化问题开启改写,更准但更慢。 |
needUrl / needContent |
web | 只返回带原文链接 / 带正文的结果(needUrl 会滤掉如意卡片)。 |
contentFormat |
web | 正文格式 text(默认) / markdown。 |
includeContent |
web | 把整篇正文也交给模型。默认 false 只给 500~1000 字摘要。 |
imageWidthMin/Max、imageHeightMin/Max、imageShapes |
image | 图片尺寸与形状(横长方形 / 竖长方形 / 方形)筛选。 |
典型调用:
doubao_web_search(query="2026年新能源汽车购置税减半政策", authInfoLevel=1, sites=["gov.cn"], timeRange="OneYear")
doubao_web_search(query="长城秋景", searchType="image", imageShapes=["横长方形"])
输出形如(默认只给 Summary,正文按 includeContent 开关):
[豆包搜索·web] · 「2026年新能源汽车购置税减半政策」 · 2 条结果 · TimeCost 130ms
1. 2026年购置新能源车辆在车辆购置税上有什么优惠政策?_国家税务总局广西壮族自治区税务局 | 国家税务总局广西壮族自治区税务局 | 非常权威 | 2026-08-27
https://guangxi.chinatax.gov.cn/nsfw/nszx/rdwd/202608/t20260827_439156.html
2026年购置新能源车辆在车辆购置税上有什么优惠政策? …
可选配置 <agentDir>/doubao-search.json
只放非敏感项(默认即下面这份):
{
"apiUrl": "https://open.feedcoopapi.com/search_api/web_search",
"timeoutSec": 60,
"includeContent": false,
"contentFormat": "text",
"count": 10
}
非法值一律降级到默认并在工具调用时告警,不静默吞掉。apiUrl 可用于切换到 Global 版端点
(Global 版的请求/响应结构不同,本扩展未实现,见下)。
已知边界
- 只实现 Custom 版协议(
Query/SearchType/Count/Filter/...,响应Result.WebResults/ImageResults)。 Global 版(DocCount/MaxSnippetLength/MaxImageCountPerDoc,响应Result.Documents[].Snippet[])是另一套结构, 本扩展不支持;用户当前 Key 是订阅套餐 Key,只能打 Custom 版。 Snippet(≈200 字)官方明确「强烈不建议用于大模型场景」,所以默认给Summary;两者都没有时才退回Snippet。- 每月 500 次免费额度与 Global 版共用;默认 10 QPS。
- 结果超长时保留开头,完整结果落盘到临时文件并在文末给出路径。
开发与验证
npm test # node --test tests/*.test.ts(41 例,含真实回包 fixture)
npm run typecheck # tsc -p tsconfig.json
- 真实回包 fixture 在
tests/fixtures/(2026-09-30 真机抓取:web / image / 筛选组合 / 10400 / 10409)。