Skip to content

Atlas Reference Agent

Atlas is a reference agent that demonstrates the server-side profile loop:

  1. Link or identify the user.
  2. Create a profile object.
  3. Read the profile and put profile.format() output in the system prompt.
  4. Give the model Configure profile tools.
  5. Route Configure tool calls through profile.executeTool().
  6. Commit the completed turn.
ts
import { Configure } from "configure";

const configure = new Configure({
  apiKey: process.env.CONFIGURE_API_KEY!,
  agent: "atlas",
});

const userToken = "..."; // Bearer token from Configure Link
const profile = configure.profile({
  token: userToken,
});
// Not linked yet? Use configure.profile({ externalId: "user-123" }) instead.

const { profile: p } = await profile.read();
const context = p.format(); // profile context for the system prompt

const tools = profile.tools({
  connectors: ["gmail", "calendar", "drive", "notion"],
  actions: ["email.send", "calendar.create_event"],
  advanced: { utilitySearch: true },
});

// `model` and `messages` come from your own chat harness.
const response = await model.run({
  system: context,
  messages,
  tools,
  executeTool: profile.executeTool,
});

await profile.commit({
  messages,
  response,
  memories: ["Prefers window seats on long-haul flights"], // optional string[] of durable facts
});

profile.tools() always includes configure_profile_read, configure_profile_search, configure_profile_remember, and configure_profile_forget, so the model can also delete its own memories when the user says "forget that". The connectors and actions options add connector tools on top of that default set. The tool options above are the ones the real Atlas server uses; it also appends its own UI tools to the list before calling the model.

The agent handle atlas is the public identifier used for profile writes and attribution. Atlas does not expose raw files or connector tools unless profile.tools() enables them.

Personalization infrastructure for agents