
GetProfile is an open-source, self-hosted solution that provides user profiles and long-term memory for AI agents, functioning as a drop-in proxy to enhance LLM-powered applications. This tool enables developers to create personalized and context-aware interactions by giving AI models persistent memory and structured user understanding without requiring extensive code changes. By routing requests through GetProfile's proxy, applications gain the ability to maintain continuity across conversations and adapt responses based on accumulated user knowledge. The system is designed specifically for developers building AI agents that require personalized interactions, offering a transparent and auditable codebase under the Apache 2.0 license. Its core value lies in transforming generic AI interactions into tailored experiences that remember user preferences, history, and characteristics over time.
Traditional AI applications struggle with maintaining context across sessions, forcing users to repeat information and preventing truly personalized experiences. Generic memory solutions often store unstructured text blobs that become unwieldy and inefficient as data accumulates, leading to overloaded prompts and context windows. Developers face challenges with blackbox solutions that exhibit unpredictable behavior and lack transparency in how user data is processed and utilized. GetProfile addresses these pain points by providing structured, organized user profiles that evolve naturally through interactions while keeping data secure and private within the user's own infrastructure. This matters because users expect AI assistants to remember their preferences and history, while developers need reliable, scalable solutions that integrate seamlessly with existing workflows.
The first major feature group is GetProfile's structured user profiles system, which extracts and organizes user information into natural language summaries, typed traits with confidence scores, and relevant memories with importance levels. Unlike generic memory solutions that store blobs of text, this structured approach organizes data in a PostgreSQL database with clear categorization and metadata. The system automatically generates summaries like 'Alex is an experienced software engineer who prefers concise, technical explanations' based on interaction patterns. Traits include specific attributes such as expertise level, communication style, and interests, each with confidence scores indicating reliability. Memories are categorized by type (fact or event) and assigned importance levels, enabling the system to prioritize relevant information during prompt injection.
admin
The second major feature group is the fully customizable user traits schema that allows developers to define exactly what user characteristics matter for their specific applications. Developers can configure trait definitions including key, label, description, value type (including enum values), and category to match their domain requirements. Each trait includes extraction settings with enabled/disabled toggles, prompt snippets for AI assessment, and confidence thresholds that determine when traits should be recorded. Injection settings control how traits appear in prompts through customizable templates and priority levels that influence their placement. This granular control ensures that different applications can track different user attributes—from communication preferences in customer service bots to technical expertise levels in developer tools—with precision and relevance.
Additional capabilities include OpenAI-compatible proxy functionality that requires no changes to existing OpenAI-based code, acting as a drop-in replacement for standard API calls. The system operates as an LLM proxy (gateway) that intercepts requests, enriches them with user context, and forwards them to upstream providers while maintaining minimal latency impact. GetProfile automatically injects a system message containing user profile summaries, traits, and relevant memories into each prompt before it reaches the LLM. The background processing updates user profiles and memories asynchronously, ensuring real-time enrichment without blocking response times. Deployment is simplified through Docker containers with a lightweight proxy built with Hono and persistent storage via PostgreSQL, featuring minimal external dependencies for easy scaling with Docker Compose.
The product works through a six-step workflow that begins when an AI agent sends a request to the GetProfile proxy instead of directly to the LLM provider. GetProfile then enriches this request by automatically adding a system message containing the structured user profile summary, traits, and relevant memories extracted from previous interactions. This enriched request is forwarded to the LLM provider (such as OpenAI), which generates a response based on the contextualized prompt. The response returns through GetProfile back to the agent, completing the interaction cycle. Meanwhile, in the background, GetProfile analyzes the conversation to update the user profile and memory database, continuously refining user understanding. This approach maintains seamless integration with existing workflows while adding persistent memory capabilities through proxy-based interception.
Concrete use cases include customer support chatbots that remember individual user preferences and previous issues, eliminating the need for customers to repeat information across multiple sessions. Software development assistants can maintain context about a developer's preferred programming languages, ongoing projects, and technical expertise level to provide more relevant coding suggestions. Educational AI tutors can track student learning progress, preferred explanation styles, and knowledge gaps to personalize lesson plans and explanations. Sales and marketing automation tools can remember customer interests, communication history, and purchase intent to deliver more targeted recommendations. In each scenario, users experience outcomes like reduced repetition, increased personalization, and more efficient interactions that feel continuous rather than isolated. The structured memory system ensures that important details like 'User mentioned working on a microservices migration last week' or 'User prefers async/await patterns over callbacks' are preserved and utilized appropriately.
Target users include developers building AI-powered applications, particularly those working on chatbots, virtual assistants, and any LLM-integrated software requiring personalized interactions. The platform supports deployment on user-owned infrastructure with PostgreSQL database storage, ensuring data privacy and security for organizations with compliance requirements. Technical implementation involves using the GetProfile SDK or pointing existing OpenAI/AI-SDK configurations to the GetProfile proxy endpoint with minimal code changes. Pricing follows an open-source model with free forever access under Apache 2.0 licensing for self-hosted deployments, while a managed cloud service with one-click setup is announced as coming soon for users preferring hassle-free management. The summary takeaway reinforces that GetProfile transforms AI interactions from generic exchanges into continuous, context-aware conversations by providing structured, evolving user profiles that remember what matters across sessions.
Developers building AI-powered applications requiring personalized interactions, particularly those working on chatbots, virtual assistants, and LLM-integrated software. Organizations needing self-hosted solutions for data privacy and compliance, including enterprises with sensitive user data. Technical teams using OpenAI or compatible APIs who want to add persistent memory without rewriting existing code. Open-source adopters seeking transparent, auditable AI infrastructure under Apache 2.0 licensing. Companies implementing customer-facing AI agents that require continuity across conversations and adaptive personalization based on user history.