A lightweight, production-grade execution kernel for managing the LLM interaction lifecycle.
Most AI integrations fall into one of two anti-patterns. Raw SDK calls have no retry, no fallback, no memory, and no observability — they break in production. Heavy frameworks like LangChain introduce opaque abstractions, hidden behavior, and vendor lock-in that make debugging and testing painful.
The gap between these two extremes is a production-ready, minimal orchestration layer that manages the lifecycle of an LLM call without becoming a framework. That is what @atisse/core provides.
| LangChain | Vercel AI SDK | @atisse/core | |
|---|---|---|---|
| Weight | Heavy | Light | Minimal |
| Focus | Framework | Frontend | Backend kernel |
| Hidden behavior | High | Medium | None |
| Vendor lock-in | Yes | Partial | No |
| Production retry/fallback | Complex | None | First-class |
| Tool lifecycle | Opaque | Limited | Explicit |
| Streaming | Yes | First-class | First-class |
| Testability | Hard | Medium | MockProvider |
pnpm add @atisse/core @atisse/provider-openai
npm install @atisse/core @atisse/provider-openaiimport { Orchestrator } from '@atisse/core';
import { OpenAIProvider } from '@atisse/provider-openai';
const apiKey = process.env.OPENAI_KEY ?? '';
if (!apiKey) throw new Error('OPENAI_KEY environment variable is required');
const orchestrator = new Orchestrator({
provider: new OpenAIProvider({ apiKey }),
retry: { maxAttempts: 3 },
});
const result = await orchestrator.run({ prompt: 'Hello' });
console.log(result.text);Behind the scenes: context was loaded, the prompt was composed, the provider was called with retry policy enforced, and the result was returned with usage and timing data — all in a deterministic, observable pipeline.
Each package has its own README.md with detailed API documentation, installation guides, and code examples.
| Package | Description |
|---|---|
@atisse/core |
Kernel, frozen interfaces, MockProvider |
@atisse/provider-openai |
OpenAI adapter (GPT-4o, GPT-4o-mini) |
@atisse/provider-anthropic |
Anthropic adapter (Claude 3.5 Sonnet, Haiku) |
@atisse/memory-inmemory |
Reference in-memory MemoryAdapter |
@atisse/memory-redis |
Redis-backed MemoryAdapter with TTL support |
@atisse/context-rag |
RAG ContextProvider — pluggable vector store |
- Getting Started
- Writing Adapters
- API Reference — Run
pnpm run docsto generate and view API documentation (will be listed underdocs/api/) - Examples
- GitHub Discussions