From 03bf80e2e0ca04d143abdcecfed8829879b8271a Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Mon, 31 Mar 2025 13:45:51 +0800 Subject: [PATCH] feat: add tavily example to ai-sdk --- examples/ai-sdk/bin/tavily.ts | 24 +++++++++++++++++++ .../bin/weather-experimental-active-tools.ts | 2 +- examples/ai-sdk/bin/weather.ts | 2 +- examples/ai-sdk/package.json | 2 +- packages/tavily/src/tavily-client.ts | 1 - pnpm-lock.yaml | 4 ++-- 6 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 examples/ai-sdk/bin/tavily.ts diff --git a/examples/ai-sdk/bin/tavily.ts b/examples/ai-sdk/bin/tavily.ts new file mode 100644 index 0000000..e64f7f1 --- /dev/null +++ b/examples/ai-sdk/bin/tavily.ts @@ -0,0 +1,24 @@ +import 'dotenv/config' + +import { createAISDKTools } from '@agentic/ai-sdk' +import { TavilyClient } from '@agentic/stdlib' +import { createOpenAI } from '@ai-sdk/openai' +import { generateText } from 'ai' + +async function main() { + const tavily = new TavilyClient() + const openai = createOpenAI({ compatibility: 'strict' }) + + const result = await generateText({ + model: openai('gpt-4o-mini'), + tools: createAISDKTools(tavily), + toolChoice: 'required', + temperature: 0, + system: 'You are a helpful assistant. Be as concise as possible.', + prompt: 'What is the latest news in the US right now?' + }) + + console.log(JSON.stringify(result.toolResults[0], null, 2)) +} + +await main() diff --git a/examples/ai-sdk/bin/weather-experimental-active-tools.ts b/examples/ai-sdk/bin/weather-experimental-active-tools.ts index 2b7fa0c..ed69e56 100644 --- a/examples/ai-sdk/bin/weather-experimental-active-tools.ts +++ b/examples/ai-sdk/bin/weather-experimental-active-tools.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { createAISDKTools } from '@agentic/ai-sdk' -import { WeatherClient } from '@agentic/weather' +import { WeatherClient } from '@agentic/stdlib' import { createOpenAI } from '@ai-sdk/openai' import { generateText } from 'ai' diff --git a/examples/ai-sdk/bin/weather.ts b/examples/ai-sdk/bin/weather.ts index 59dc9b5..7aa3ed4 100644 --- a/examples/ai-sdk/bin/weather.ts +++ b/examples/ai-sdk/bin/weather.ts @@ -1,7 +1,7 @@ import 'dotenv/config' import { createAISDKTools } from '@agentic/ai-sdk' -import { WeatherClient } from '@agentic/weather' +import { WeatherClient } from '@agentic/stdlib' import { createOpenAI } from '@ai-sdk/openai' import { generateText } from 'ai' diff --git a/examples/ai-sdk/package.json b/examples/ai-sdk/package.json index cc961f1..00486ae 100644 --- a/examples/ai-sdk/package.json +++ b/examples/ai-sdk/package.json @@ -10,7 +10,7 @@ "dependencies": { "@agentic/ai-sdk": "workspace:*", "@agentic/mcp": "workspace:*", - "@agentic/weather": "workspace:*", + "@agentic/stdlib": "workspace:*", "@ai-sdk/openai": "catalog:", "ai": "catalog:", "exit-hook": "catalog:", diff --git a/packages/tavily/src/tavily-client.ts b/packages/tavily/src/tavily-client.ts index edd37bb..caf6d95 100644 --- a/packages/tavily/src/tavily-client.ts +++ b/packages/tavily/src/tavily-client.ts @@ -172,7 +172,6 @@ export class TavilyClient extends AIFunctionsProvider { max_results: z .number() .int() - .positive() .default(5) .optional() .describe('Max number of search results to return.') diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 239a617..0d1e164 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -269,9 +269,9 @@ importers: '@agentic/mcp': specifier: workspace:* version: link:../../packages/mcp - '@agentic/weather': + '@agentic/stdlib': specifier: workspace:* - version: link:../../packages/weather + version: link:../../packages/stdlib '@ai-sdk/openai': specifier: 'catalog:' version: 1.3.4(zod@3.24.2)