Client Configuration

This page documents how to configure the @chirino/memory-service-vercelai package when connecting to Memory Service.

Configuration Approaches

The package supports two configuration styles:

Pass a MemoryServiceConfig object with all connection settings:

import {
  createMemoryServiceProxy,
  withMemoryService,
  type MemoryServiceConfig,
} from "@chirino/memory-service-vercelai";

const config: MemoryServiceConfig = {
  baseUrl: "http://memory-service:8082",
  apiKey: "my-agent-key",
};

const proxy = createMemoryServiceProxy(config);

await withMemoryService(
  {
    ...config,
    conversationId: "conv-1",
    memoryContentType: "text/plain",
  },
  async (contextMemory, responseRecorder) => {
    // ...
  },
);

This approach keeps your code self-contained and testable — no hidden dependencies on process.env.

Use the factory function to read configuration from MEMORY_SERVICE_* environment variables:

import { memoryServiceConfigFromEnv } from "@chirino/memory-service-vercelai";

const config = memoryServiceConfigFromEnv();
const proxy = createMemoryServiceProxy(config);

You can override individual settings while reading the rest from the environment:

const config = memoryServiceConfigFromEnv({
  baseUrl: "http://custom-host:9090",
});

Environment Variable Reference

VariableDescriptionDefault
MEMORY_SERVICE_URLBase URL for REST API callshttp://localhost:8082
MEMORY_SERVICE_UNIX_SOCKETAbsolute path to a Unix domain socket (overrides URL for transport)(none)
MEMORY_SERVICE_API_KEYAPI key sent in the x-api-key header for agent authentication(none — must be set)
MEMORY_SERVICE_GRPC_TARGETExplicit gRPC target (e.g. host:port or unix:///path)Derived from MEMORY_SERVICE_URL

Unix Domain Sockets

When MEMORY_SERVICE_UNIX_SOCKET is set (or unixSocket is passed in config), REST calls use an undici socket dispatcher and gRPC derives a unix:///... target automatically.

See Unix Domain Sockets for a full walkthrough.

Authorization

The authorization field in MemoryServiceConfig sets a static Authorization header value. For per-request token forwarding (reading from incoming HTTP request headers), use the withProxy() helper which automatically extracts the Authorization header from each request.

See Getting Started for setup details.