Anvia 1.0 is stable
After months of release-candidate testing, Anvia v1 is now the stable package line for building, debugging, and operating TypeScript agents.
By Anvia TeamAnvia 1.0 is now stable.
After months of rebuilding runtime boundaries, testing the complete package train, and cutting release candidates, all public Anvia packages are available as 1.0.0 through npm's default latest tag.
pnpm add @anvia/core @anvia/openai
This release is the foundation we want TypeScript teams to build on: a provider-neutral agent runtime whose responsibilities remain explicit, whose packages move together, and whose abstractions do not take ownership away from the application.
One stable runtime contract
Anvia v1 replaces builder-era execution with direct, typed runtime objects. Configure an Agent once, then start work with generate() or stream().
import { Agent } from '@anvia/core'
import { OpenAIClient } from '@anvia/openai'
const client = new OpenAIClient({
apiKey: process.env.OPENAI_API_KEY!,
})
const agent = new Agent({
id: 'support',
model: client.completionModel({
modelId: 'gpt-5.6-sol',
api: 'responses',
}),
instructions: 'Answer support questions clearly.',
maxTurns: 4,
})
const result = await agent.generate({
prompt: 'Draft a reply for this customer.',
})
if (result.type === 'response') {
console.log(result.output)
}
A run ends as a response, a suspended interaction, or a guardrail block. Tools, memory, retrieval, streaming, and tracing all preserve that lifecycle instead of inventing package-specific versions of it.
The application stays in control
Anvia owns the model-and-tool loop. The application still owns credentials, authentication, authorization, tenant boundaries, business services, persistence, deployment, and the response shown to users.
That division is visible throughout v1:
- provider clients receive credentials explicitly;
- protected tools return resumable interactions while handlers re-check authorization;
- memory adapters use application-owned databases and migration workflows;
- Server, Client, React, and Studio share one public interaction protocol;
- observability records runtime evidence without becoming the runtime itself.
A synchronized package train
The stable release includes Core, provider adapters, memory and vector stores, React and Server transports, Studio, Sandbox, Browser, observability integrations, local embeddings, MCP, and the CLI.
These packages share public contracts, so Anvia releases them as one synchronized train. Keep Anvia package versions aligned when upgrading, and add only the adapters the application needs.
The release also establishes newer capabilities as first-class packages. @anvia/browser provides an explicit Docker-backed Chromium runtime and coordinated human control. @anvia/neo4j adds schema-first GraphRAG while leaving graph ownership with the application. @anvia/mcp owns MCP clients and transports instead of hiding their lifecycle inside Core.
From v0 to v1
Applications moving from v0 should treat v1 as an intentional migration:
- replace
AgentBuilderwithnew Agent({ ... }); - replace
.prompt(...).send()withagent.generate(...)oragent.stream(...); - handle response, interaction, and blocked outcomes explicitly;
- move MCP clients and transports to
@anvia/mcp; - update all Anvia packages together;
- run application type checks, integration tests, and evaluation suites before deployment.
The compatibility and versioning guide explains that boundary in detail.
Start with stable v1
Follow the Anvia v1 quickstart, explore the package catalog, and review the release history.
Anvia 1.0 is published, tested, and ready. Now we can build forward on a stable foundation.