Atlas — Reference Agent
Atlas is a travel planning agent built with Configure. It demonstrates the fuller production integration pattern: authentication, profile-based personalization, tool calling, memory extraction, and profile seeding.
Live demo: atlas.configure.dev
What Atlas demonstrates
| Pattern | How Atlas does it |
|---|---|
| Auth | Configure.auth() hosted auth surface handles phone OTP in a secure iframe; backend receives the agent-scoped token |
| Profile → system prompt | client.profile.get(token, userId, { sections }) → profile.format({ guidelines: true }) → injected into Anthropic system prompt |
| Tool calling | CONFIGURE_TOOLS passed to Claude. Full executeTool() switch handles all 16 tools. |
| Agentic loop | Streams responses via SSE. Continues looping while the LLM requests tools. |
| Memory extraction | Fire-and-forget ingest() after every conversation with custom memoryCriteria |
| Profile seeding | Frontend uses Configure.connections() and Configure.memoryImport() hosted surfaces |
| Error handling | Uses 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-6',
max_tokens: 4096,
system: systemPrompt,
tools: [...CONFIGURE_TOOLS, ...UI_TOOLS],
messages,
});Building your own
Atlas is not the canonical starter template. Start new apps from the packaged Configure template (node_modules/configure/template/). Use Atlas when you need the fuller production reference with persistence and a richer product shell.
For adding Configure to an existing project, see the Quick Start.