import { TavilyExtract } from "@langchain/tavily"; import { tool } from "@langchain/core/tools"; import * as z from "zod" import config from "../../../../conf.json" with { type: "json" }; const webFetchTool = tool( async ({ extractDepth = "basic", includeImages = false, format = "markdown", urls = [], }) => { const tavilyExtract = new TavilyExtract({ tavilyApiKey: config.agent.tavily.apiKey, extractDepth, includeImages, format }); return await tavilyExtract._call({ urls }); }, { name: "web_fetch", description: "Run a web fetch", schema: z.object({ extractDepth: z.enum(["basic", "advanced"]).default("basic"), includeImages: z.boolean().default(false), format: z .enum(["markdown", "json"]) .default("markdown"), urls: z.array(z.string().describe("The urls")).default([]), }), }, ); export { webFetchTool };