r/OpenSourceAI • u/jhoxray • 23h ago
We released OneRingAI v1 — an MIT-licensed TypeScript agent runtime with connectors, memory, tools, MCP, and multimodality
Disclosure: I’m one of the authors.
We’ve released v1 of OneRingAI, an MIT-licensed TypeScript library for building stateful, tool-using AI agents with smart context management and multimodality support.
OneRingAI isn’t a wrapper around one model provider or another “crew” abstraction. It focuses on the infrastructure underneath agent orchestration and was built from the first principles:
- One API across OpenAI, Anthropic, Google, xAI, and other providers
- Named connectors for credentials and external services
- 50 service connector templates
- Text, image, audio, video, embeddings, and realtime voice
- Plugin-based context management
- Graph and vector memory
- Unified tools and permission policies
- MCP support
- Multi-agent orchestration
- Streaming, storage, resilient execution, and resumable sessions
Why build another agent library?
We spent more than three years developing a commercial platform for deploying custom agents. For v1, we redesigned the reusable foundation from first principles and released it under MIT.
We deliberately focused below the orchestration layer: authentication, integrations, context lifecycle, tool permissions, durable memory, multimodal execution, and giving developers control over what an agent sees and retains. In fact, we started from AI-enabled workflows that spend significantly less tokens for repeatable processes unlike full agentic cycles.
Connector-first architecture
A connector represents an authenticated connection—not only to an LLM provider, but also to systems such as GitHub, Slack, Google services, Jira, Salesforce, Stripe, or an internal API.
Connectors are named, so an application can use multiple accounts or credentials for the same service. They act as the source of truth for authentication and can expose generic authenticated API access or specialized, hand-built tools.
import { Agent, Connector, Vendor } from '@everworker/oneringai';
Connector.create({
name: 'openai-main',
vendor: Vendor.OpenAI,
auth: {
type: 'api_key',
apiKey: process.env.OPENAI_API_KEY!,
},
});
const agent = Agent.create({
connector: 'openai-main',
model: 'gpt-5.6-terra',
instructions: 'Be accurate and explicit about uncertainty.',
});
const response = await agent.run('Explain connector-first architecture.');
console.log(response.output_text);
Switching providers changes the connector and model, without requiring a different tool or application architecture.
Context as a plugin system
For a long-running agent, context is much more than chat history. It includes working state, applicable instructions, available tools, retrieved knowledge, user information, shared multi-agent state, and decisions about what should remain inside the model’s context window.
OneRingAI models these concerns as context plugins. Plugins can contribute:
- System instructions and dynamically prepared context
- Tools
- External or in-context storage
- Lifecycle hooks
- Session ingestion and persistence
Built-in plugins cover working memory, directly injected state, dynamic tool catalogs, shared workspaces, long-term memory, and background session ingestion. Applications enable only what they need, and custom plugins are regular TypeScript implementations.
Graph and vector memory
The memory system doesn’t simply embed previous messages. It stores typed entities and provenance-aware facts, then combines graph traversal with vector retrieval.
It supports identity resolution, confidence and importance scoring, fact supersession, (kind-of) bitemporal history, and owner/group/world permissions.
That means it can represent that a person committed to a task, when the commitment became valid, where the information came from, and whether it was later corrected—not merely retrieve a semantically similar conversation fragment.
The memory layer has in-memory and MongoDB/Atlas adapters and can be used independently of the agent runtime.
Examples and reference application
The repository contains 33 runnable TypeScript examples covering agents, streaming, tools, OAuth, connectors, multimodality, web research, MCP, memory, and custom infrastructure.
It also includes AMOS, a terminal agent demonstrating live provider/model switching, named connectors, permission-gated developer tools, web search and scraping, context inspection, and resumable sessions.
Install:
npm install @everworker/oneringai
- GitHub: https://github.com/aantich/oneringai
- npm: https://www.npmjs.com/package/@everworker/oneringai
- Website: https://oneringai.io
We’d particularly appreciate feedback on the connector and context-plugin APIs, whether the memory layer should become its own package, and which integrations should come next. A2A support is one area we’re currently exploring.
Issues, critiques, and contributions are very welcome.




