@mnemix-ai/client
v0.2.0
Published
Official HTTP client for the Mnemix memory + enrichment API for AI voice and chat agents.
Downloads
299
Maintainers
Readme
@mnemix-ai/client
Official HTTP client for the Mnemix memory + enrichment API for AI voice and chat agents.
One call before every interaction → your agent knows who it's talking to. One call after → memory persists for the next call.
Install
npm install @mnemix-ai/clientNode 18+ (built-in fetch) or any environment with a fetch implementation (Workers, Deno, browsers, Node 16 + polyfill).
Initialize
import { MnemixClient } from "@mnemix-ai/client";
const mnemix = new MnemixClient({
apiKey: process.env.MNEMIX_API_KEY!, // sk_live_... or sk_test_...
// baseUrl: "https://mnemix-api.sayeed965.workers.dev", // optional override
// timeoutMs: 5000, // per-request timeout
// fetch: customFetch, // optional injection
});The original Mnemix export still works as an alias of MnemixClient for backward compatibility.
Usage
Pre-call: fetch Living Context
const ctx = await mnemix.context({
phone_number: "+15551234567",
surface: "voice",
session_id: "call_abc",
trigger: "ringing",
});
console.log(ctx.caller.name, ctx.memory.summary);Post-call: observe the event
await mnemix.observe({
type: "call.ended",
surface: "voice",
session_id: "call_abc",
phone_number: "+15551234567",
transcript: [
{ role: "user", text: "Hi, I need a quote.", ts_ms: 0 },
{ role: "agent", text: "Sure — what's the vehicle?", ts_ms: 1200 },
],
duration_s: 87,
outcome: "quote_given",
agent_metadata: { intent: "quote_request" },
});Resolve identity and send feedback
await mnemix.resolve({ phone_number: "+15551234567", email: "[email protected]" });
await mnemix.feedback({ trace_id: ctx.trace_id, rating: 1 });recall_and_enrich() and calls_end() remain as deprecated v0.1 aliases for this release cycle and warn once per process.
Errors
import { MnemixApiError, MnemixNetworkError } from "@mnemix-ai/client";
try {
await mnemix.context({ phone_number: "+15551234567", surface: "voice" });
} catch (err) {
if (err instanceof MnemixApiError) {
// 4xx / 5xx response. err.status, err.code, err.message, err.requestId,
// and err.retryAfter (seconds, on 429) are all populated.
} else if (err instanceof MnemixNetworkError) {
// fetch failed or request timed out. err.cause holds the underlying error.
}
}Environment variables
By convention:
MNEMIX_API_KEY=sk_live_xxxxxxxxxxxx
MNEMIX_API_URL=https://mnemix-api.sayeed965.workers.dev # optionalLicense
MIT
