FEAT: implement temp version of main tooling feedback loop

This commit is contained in:
William Jeynes
2026-02-09 20:25:36 +00:00
parent 5841e8a922
commit cd2c8621e8
13 changed files with 119 additions and 72 deletions
+45
View File
@@ -0,0 +1,45 @@
import { tool } from "@langchain/core/tools";
import * as z from "zod";
import { queryScraper } from "./webSearch";
import { extractWebpageContent } from "./webpageFetch";
function rankAndDisplayData(data: string[]):string {
//TODO: hybrid re-ranking of the provided data
return data.join("\n")
}
// Define tools
const webSearch = tool(
async ({ a }) => {
const data = await queryScraper(a);
return rankAndDisplayData(data);
},
{
name: "WebSearch",
description: "Search DuckDuckGo for the provided query",
schema: z.object({
a: z.string().describe("Search term"),
}),
}
);
const openWebpage = tool(
async ({ a }) => {
const data = await extractWebpageContent(a);
return rankAndDisplayData(data);
},
{
name: "OpenWebpage",
description: "Opens webpage and returns most relevent snippets",
schema: z.object({
a: z.string().describe("URL"),
}),
}
);
// Augment the LLM with tools
export const triggerEventToolsByName = {
[webSearch.name]: webSearch,
[openWebpage.name]: openWebpage
};