import { agent, task, SpanWrapper } from "netra-sdk";
import { ChatOpenAI } from "langchain/chat_models/openai";
import { Calculator } from "langchain/tools/calculator";
import { createReactAgent, AgentExecutor } from "langchain/agents";
const model = new ChatOpenAI();
const tools = [new Calculator()];
@agent()
async function runAgent(query: string) {
const span = new SpanWrapper("agent-execution").start();
try {
const agentExecutor = await createReactAgent({
llm: model,
tools
});
const result = await agentExecutor.invoke({ input: query });
span.end();
return result;
} catch (error) {
span.setAttribute("error", String(error));
span.end();
throw error;
}
}