const { ChatOpenAI } = require("@langchain/openai"); const { awaitAllCallbacks } = require("@langchain/core/callbacks/promises"); const { Calculator } = require("@langchain/community/tools/calculator"); const { AgentExecutor, createToolCallingAgent } = require("langchain/agents"); const { ChatPromptTemplate } = require("@langchain/core/prompts"); const { JLINCTracer } = require("../src/tracer.js"); async function main() { const tracer = new JLINCTracer({ dataStoreApiUrl: "http://localhost:9090", dataStoreApiKey: process.env.JLINC_DATA_STORE_API_KEY, archiveApiUrl: "http://localhost:9090", archiveApiKey: process.env.JLINC_ARCHIVE_API_KEY, agreementId: "00000000-0000-0000-0000-000000000000", systemPrefix: "TracerTest", debug: true, }); const llm = new ChatOpenAI({ openAIApiKey: "n/a", configuration: { baseURL: "http://localhost:1234/v1", }, modelName: "meta-llama-3.1-8b-instruct", }); const calculator = new Calculator(); const tools = [calculator]; const prompt = ChatPromptTemplate.fromMessages([ ["system", "You are a helpful assistant"], ["placeholder", "{chat_history}"], ["human", "{input}"], ["placeholder", "{agent_scratchpad}"], ]); const agent = createToolCallingAgent({ llm, tools, prompt }); const agentExecutor = new AgentExecutor({ agent, tools, }); try { const r = await agentExecutor.invoke({ input: "Add 1 + 1" }, {callbacks: [tracer]}); console.log(`\nResult`) console.log(`---------------------------------------------`) console.log(r) } catch (err) { console.error("Error calling LLM:", err); } finally { await awaitAllCallbacks(); } } main()