agenix
v0.0.3
Published
A Production-ready AI Agent SDK with Internal Loop Engineering.
Maintainers
Readme
agenix
A TypeScript SDK for building tool-using LLM agents with provider adapters, streaming support, memory/planner abstractions, and a composable execution loop.
Features
- OpenAI-compatible provider support
- Gemini-compatible provider support (OpenAI-compatible endpoint)
- Claude-compatible provider support (Anthropic Messages API)
- Tool execution loop with iterative reasoning
- Streaming-first runtime with automatic fallback
- Event bus for lifecycle + stream chunk events
- Logger with runtime toggle wrapper
- Pluggable memory and planner abstractions
Install
pnpm add agenixMinimal Usage
import { Agent, OpenAICompatibleProvider } from "agenix";
const provider = new OpenAICompatibleProvider({
apiKey: process.env.OPENAI_API_KEY ?? "",
});
const agent = new Agent({
provider,
model: "gpt-4o-mini",
loggerEnabled: true,
});
const result = await agent.run("Give me 3 short TypeScript SDK testing tips.");
console.log(result.finishReason);
console.log(result.response?.message);Provider Quick Setup
import {
OpenAICompatibleProvider,
GeminiCompatibleProvider,
ClaudeCompatibleProvider,
} from "agenix";
const openai = new OpenAICompatibleProvider({
apiKey: process.env.OPENAI_API_KEY ?? "",
});
const gemini = new GeminiCompatibleProvider({
apiKey: process.env.GEMINI_API_KEY ?? "",
});
const claude = new ClaudeCompatibleProvider({
apiKey: process.env.ANTHROPIC_API_KEY ?? "",
});Tools + Loop
import { Agent, OpenAICompatibleProvider } from "agenix";
const agent = new Agent({
provider: new OpenAICompatibleProvider({
apiKey: process.env.OPENAI_API_KEY ?? "",
}),
model: "gpt-4o-mini",
tools: [
{
name: "now",
description: "Return current UTC time",
async execute() {
return { now: new Date().toISOString() };
},
},
],
});
const result = await agent.run("Call now and summarize the output.");
console.log(result.messages);Streaming + Events
import { Agent, AgentEventBus, OpenAICompatibleProvider } from "agenix";
const events = new AgentEventBus();
events.on("provider:chunk", ({ data }) => {
const payload = data as { chunk?: { delta?: { text?: string } } };
if (payload.chunk?.delta?.text) {
process.stdout.write(payload.chunk.delta.text);
}
});
const agent = new Agent({
provider: new OpenAICompatibleProvider({
apiKey: process.env.OPENAI_API_KEY ?? "",
}),
model: "gpt-4o-mini",
events,
preferStreaming: true,
});
await agent.run("Explain event-driven architecture in one paragraph.");Logging Toggle
const agent = new Agent({
provider,
model: "gpt-4o-mini",
loggerEnabled: false,
});Documentation
- docs/README.md
- docs/quickstart.md
- docs/providers.md
- docs/architecture.md
- docs/streaming.md
- docs/events-logging.md
Examples
- examples/README.md
- examples/minimal-openai.ts
- examples/providers-switch.ts
- examples/with-tools.ts
- examples/streaming-events.ts
- examples/custom-memory-planner.ts
Development
pnpm clean
pnpm build
pnpm test -- --run
pnpm typecheckPublish Gate
prepublishOnly enforces:
- clean
- build
- tests
- typecheck
