Skip to content

Atlas — Reference Agent

Atlas is a travel planning agent built with Configure. It demonstrates the complete integration pattern: authentication, profile-based personalization, tool calling, memory extraction, and profile seeding.

Live demo: atlas.staging.configure.dev

Source: apps/agents/atlas/server.ts in the Configure repo

What Atlas demonstrates

PatternHow Atlas does it
Auth proxyPOST /auth/send-otp and /auth/verify-otp forward to client.auth.sendOtp() / client.auth.verifyOtp()
Profile → system promptclient.profile.get(token, userId, { sections })profile.format({ guidelines: true }) → injected into Anthropic system prompt
Tool callingCONFIGURE_TOOLS passed to Claude. Full executeTool() switch handles all 16 tools.
Agentic loopStreams responses via SSE. Continues looping while the LLM requests tools.
Memory extractionFire-and-forget ingest() after every conversation with custom memoryCriteria
Profile seedingFrontend includes <configure-connection-list> and <configure-memory-import>
Error handlingUses classifyError() for user-safe error messages from any source

Key code paths

System prompt assembly (server.ts ~line 242):

typescript
const profile = await client.profile.get(token, userId, {
  sections: ['identity', 'summary', 'integrations'],
});
const context = profile.format({ guidelines: true });
const systemPrompt = `${ATLAS_DESCRIPTION}\n\n${context}`;

LLM call (server.ts ~line 261):

typescript
const stream = anthropic.messages.stream({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 4096,
  system: systemPrompt,
  tools: [...CONFIGURE_TOOLS, ...UI_TOOLS],
  messages,
});

Building your own

Atlas is ~370 lines of TypeScript. To build something similar from scratch, see the Build a New Agent section in skill.md, which provides a complete server + frontend template modeled on the Atlas pattern.

For adding Configure to an existing project, see the Quick Start.

Identity and memory infrastructure for AI agents