generateText 或 streamText,模型会决定何时进行搜索、抓取或爬取。
从 npm 安装 →
功能
该包提供了 6 种工具:抓取
抓取任何 URL 并返回干净的 markdown,支持 JavaScript 渲染
搜索
搜索实时网页并返回标题、URL 和描述
回答
从实时网页回答问题,并提供来源 URL
映射
列出网站上的 URL,可选择按查询进行排名
爬取
从起始 URL 爬取网站并返回每个页面的 markdown
批处理
批量抓取 URL 列表并返回每个页面的 markdown
安装
设置
将你的 Olostep API 密钥设置为环境变量:.env 文件中:
快速开始
使用olostepTools() 将所有 Olostep 工具传递给模型:
stopWhen 允许模型在多个步骤中调用工具,例如先搜索然后抓取最佳结果。模型字符串使用 Vercel AI Gateway。你也可以传递任何 AI SDK 提供者模型,例如来自 @ai-sdk/openai 的 openai('gpt-5-mini')。
选择单个工具
只给模型所需的工具:可用工具
以下工具名称是olostepTools() 使用的键。
scrape
olostepScrape()。抓取单个 URL 并以 markdown 格式返回其内容。
输入:
string
必填
要抓取的页面 URL
number
等待 JavaScript 密集型页面渲染的毫秒数(0 到 10000)
{ url, markdown }
search
olostepSearch()。搜索实时网页。
输入:
string
必填
搜索查询
number
默认值:"10"
最大结果数(1 到 20)
{ query, results: [{ title, url, description }] }
answer
olostepAnswer()。搜索并阅读实时网页以回答问题,并提供来源。
输入:
string
必填
问题或研究任务
{ answer, sources }
map
olostepMap()。发现网站上的 URL。
输入:
string
必填
要映射的网站
string
按与此查询的相关性对 URL 进行排名
number
要返回的最大 URL 数(1 到 500)
{ url, urls }
crawl
olostepCrawl()。从起始 URL 爬取网站并返回每个页面的 markdown。工具在返回之前等待爬取完成。
输入:
string
必填
开始爬取的 URL
number
默认值:"5"
最大爬取页面数(1 到 25)
array
仅爬取匹配这些 glob 模式的 URL,例如
["/docs/**"]{ url, pages: [{ url, markdown }] }
batch
olostepBatch()。批量抓取 URL 列表并返回每个页面的 markdown。工具在返回之前等待批处理完成。
输入:
array
必填
要抓取的 URL(1 到 20)
{ pages: [{ url, markdown }] }
爬取和批处理工具每次调用限制为 25 页和 20 个 URL,以保持工具结果足够小以适应模型。对于更大的任务,请直接使用 Node.js SDK 调用 Crawls 和 Batches API。
选项
每个工具和olostepTools() 接受相同的选项:
string
Olostep API 密钥。默认为
OLOSTEP_API_KEY 环境变量。number
默认值:"20000"
每页返回给模型的最大字符数。较长的页面会被截断。
number
默认值:"300"
爬取和批处理工具等待任务完成的时间,以秒为单位。
流式示例
在 Next.js 路由处理器中使用相同的工具与streamText:
app/api/chat/route.ts
常见用例
研究助手
研究助手
- 模型使用
search或answer找到来源 - 使用
scrape阅读最相关的页面 - 返回带有来源 URL 的摘要
文档感知编码代理
文档感知编码代理
- 模型使用
map和searchQuery找到正确的文档页面 - 使用
batch或crawl阅读它们 - 根据当前 API 编写代码而不是猜测
竞争对手和价格监控
竞争对手和价格监控
- 定时任务调用
generateText与scrape和batch - 模型从每个页面提取价格或变化
- 你的代码将它们与上次运行进行比较并发送警报
最佳实践
只传递你需要的工具
只传递你需要的工具
每个工具的描述都会发送给模型。工具越少,token 越少,错误工具选择也越少。对于只读取页面的聊天,
scrape 和 search 通常就足够了。设置步骤限制
设置步骤限制
始终设置
stopWhen(例如 stepCountIs(5)),以便模型可以链式调用工具,但不能无限循环。为长页面降低 maxCharacters
为长页面降低 maxCharacters
页面内容是 token 账单的最大部分。如果你爬取或批处理许多页面,请降低
maxCharacters 以便所有结果都能适应模型的上下文窗口。为大型爬取提高 timeoutSeconds
为大型爬取提高 timeoutSeconds
爬取和批处理工具等待任务完成。如果遇到超时,请提高
timeoutSeconds,或降低 maxPages。故障排除
认证失败
认证失败
错误:“无效的 API 密钥”解决方案:
- 在 dashboard 中检查你的 API 密钥
- 确保
OLOSTEP_API_KEY在你的代码运行位置设置(例如在你的 Vercel 项目的环境变量中) - 或直接通过
olostepTools({ apiKey })传递密钥
模型未调用工具
模型未调用工具
解决方案:
- 设置
stopWhen,否则生成将在第一步后停止 - 使用支持工具调用的模型
- 在提示或系统消息中提到网络,例如 “使用网络工具并引用你的来源”
爬取或批处理超时
爬取或批处理超时
解决方案:
- 提高
timeoutSeconds - 降低
maxPages或传递更少的 URL - 在无服务器函数上,确保函数自身的时间限制长于
timeoutSeconds
上下文长度超出
上下文长度超出
解决方案:
- 降低
maxCharacters - 使用
map和searchQuery在阅读之前选择更少、更相关的页面
价格
Olostep 根据 API 使用情况收费,与 AI SDK 无关:- 抓取:按抓取收费
- 搜索和回答:按请求收费
- 批处理:按批处理中的 URL 收费
- 爬取:按爬取的页面收费
- 映射:按映射操作收费
支持
相关资源
抓取 API
了解抓取端点
爬取 API
了解爬取端点
Mastra 集成
使用 Mastra 构建代理
LangChain 集成
使用 LangChain 构建 AI 代理