@statefabric/adk
v1.0.1
Published
ADK integration for the StateFabric.dev.
Readme
StateFabric ADK
Use @statefabric/adk to connect a Google ADK application's session lifecycle to StateFabric. It wraps your existing ADK session service: your application continues to use that service, while StateFabric stores sessions and events and makes compacted context available through the platform.
For credentials and platform setup, follow the StateFabric Getting Started guide.
Installation
Install the integration alongside Google ADK:
npm install @statefabric/adk @google/adkSet the StateFabric agent API key from the Getting Started guide:
export STATEFABRIC_AGENT_API_KEY="your-agent-api-key"Quick Start
Create your ADK agent as usual, then wrap the session service passed to the runner. This example uses ADK's in-memory service; you can wrap another BaseSessionService implementation the same way.
import { InMemorySessionService, LlmAgent, Runner } from "@google/adk";
import { StateFabricSessionService } from "@statefabric/adk";
export const rootAgent = new LlmAgent({
name: "hello_time_agent",
model: "gemini-flash-latest",
description: "Tells the current time in a city.",
instruction: "Use the getCurrentTime tool when the user asks for the time.",
tools: [getCurrentTime],
});
const sessionService = new StateFabricSessionService({
service: new InMemorySessionService(),
agentApiKey: process.env.STATEFABRIC_AGENT_API_KEY,
});
export const runner = new Runner({
appName: "time-agent",
agent: rootAgent,
sessionService,
});From this point, use runner normally. Sessions created through it and the events appended to them are synchronized with StateFabric. You can also retrieve compacted context from the session service when your application needs it:
const context = await sessionService.getCompactedContext({
appName: "time-agent",
userId: "user-123",
sessionId: "session-abc",
});See the StateFabric documentation for platform setup, API keys, and the broader StateFabric workflow.
