@setu-ai/core
v1.0.2
Published
Minimal agent SDK with tools, handoffs, sessions, and multi-provider support
Downloads
459
Readme
@setu-ai/core
Minimal TypeScript agent SDK — build LLM agents with tools, handoffs, sessions, streaming, and long-term memory.
npm i @setu-ai/coreFeatures
- Agents — builder API, instructions, tools, handoffs
- Tools — Zod-validated native function calling
- Providers — OpenAI, Anthropic, Google (with optional fallbacks)
- Sessions — short-term chat history (
MemorySession,FileSession) - Memory — long-term recall via Mem0 (
Mem0Memory) - Streaming — token events with
agent.stream()/text_delta - Guardrails — input, output, and tool checks
- Tracing — run steps (model / tool / handoff) on every result
Quick start
import { Agent, MemorySession, openai, tool } from "@setu-ai/core";
import { z } from "zod";
const getWeather = tool({
name: "getWeather",
description: "Fetch weather for a city",
parameters: z.object({ city: z.string() }),
execute: async ({ city }) => ({ city, tempC: 18 }),
});
const agent = Agent.builder()
.setName("assistant")
.setInstruction("Be helpful. Use getWeather for weather questions.")
.setModel(openai("gpt-4o"))
.tool(getWeather)
.build();
const result = await agent.run("Weather in London?", {
session: new MemorySession(),
});
console.log(result.finalOutput);Set OPENAI_API_KEY (and other provider keys as needed) in your environment or a .env file.
Swap providers
import { anthropic, google, openai } from "@setu-ai/core";
.setModel(openai("gpt-4o"))
.setModel(anthropic("claude-sonnet-4-20250514"))
.setModel(google("gemini-2.0-flash"))Stream tokens
const run = agent.stream("Tell me a short joke");
for await (const event of run) {
if (event.type === "text_delta") process.stdout.write(event.delta);
}
await run.result;Long-term memory (Mem0)
import { Mem0Memory, MemorySession } from "@setu-ai/core";
await agent.run("I prefer oat milk.", {
session: new MemorySession(),
memory: new Mem0Memory(), // MEM0_API_KEY
userId: "alice",
});Short-term turns stay in the session; Mem0 stores durable facts only.
Examples (this repo)
cp .env.example .env # OPENAI_API_KEY, optional MEM0_API_KEY
npm install
npm run example:weather # minimal tool agent
npm run example:trace # handoff + step log
npm run example:stream # token streaming
npm run example:memory # session + Mem0Docs
| Doc | Contents | | --- | --- | | Getting started | Install, env, quick start, examples | | Guide | Tools, handoffs, memory, streaming, guardrails, events, tracing | | API | Public surface + errors |
License
MIT © Supriya Das
