The agent core, in every language.
smooth-operator is a polyglot AI agent core: one schema-driven WebSocket protocol, with real native clients for TypeScript, Python, Go, .NET, and Rust. Streaming, tools, knowledge grounding, checkpointing, and human-in-the-loop — built in.
Schema-driven protocol
One language-neutral JSON-Schema contract. Generated types are committed, so every client speaks the same wire.
Native clients, 5 languages
First-class clients for TypeScript, Python, Go, .NET, and Rust — not thin REST wrappers, real streaming clients.
Streaming + tools
Token-by-token responses, tool calls, and a terminal eventual_response — the full agent turn, typed.
Knowledge grounding
Retrieval-augmented answers with citations. Pluggable stores: Postgres + pgvector, or DynamoDB + S3 Vectors.
Checkpointing + memory
Durable conversation state and resumable turns — pause, persist, and pick a turn back up later.
Human-in-the-loop
Confirm-before-write tool gating and OTP-style resume, modeled directly in the protocol.
A real streaming client
Connect, send, stream
import { SmoothAgentClient } from '@smooai/smooth-operator';
const client = new SmoothAgentClient({ url: 'wss://your-host/ws' });
await client.connect();
const { sessionId } = await client.createConversationSession({ agentId });
// Stream the agent's reply, token by token.
for await (const event of client.sendMessage({ sessionId, message: 'Hi!', stream: true })) {
if (event.type === 'stream_token') process.stdout.write(event.token ?? '');
}Build agents that stream
Open source, schema-first, polyglot. Star it and pick your language.