tmp
This commit is contained in:
35
agent/escort/tools/web/search.js
Normal file
35
agent/escort/tools/web/search.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import { TavilySearch } from "@langchain/tavily";
|
||||
import { tool } from "@langchain/core/tools";
|
||||
import * as z from "zod"
|
||||
|
||||
const webSearchTool = tool(
|
||||
async ({
|
||||
query,
|
||||
maxResults = 5,
|
||||
topic = "general",
|
||||
includeRawContent = false,
|
||||
}) => {
|
||||
const tavilySearch = new TavilySearch({
|
||||
maxResults,
|
||||
tavilyApiKey: process.env.TAVILY_API_KEY,
|
||||
includeRawContent,
|
||||
topic,
|
||||
});
|
||||
return await tavilySearch._call({ query });
|
||||
},
|
||||
{
|
||||
name: "internet_search",
|
||||
description: "Run a web search",
|
||||
schema: z.object({
|
||||
query: z.string().describe("The search query"),
|
||||
maxResults: z.number().optional().default(5),
|
||||
topic: z
|
||||
.enum(["general", "news", "finance"])
|
||||
.optional()
|
||||
.default("general"),
|
||||
includeRawContent: z.boolean().optional().default(false),
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
export { webSearchTool };
|
||||
Reference in New Issue
Block a user