Inspiration
From “Customer-Service Dating” to Hang the DJ As someone born in the 2000s, I’m both a believer in AI and a firsthand member of the “socially burned-out” generation. This idea came from two very different moments. The fatigue of reality. I open Tinder or Soul and swipe left, swipe right, almost on autopilot. Every match starts with the same “Hi,” which means I have to perform the same routine again: introducing myself, listing my hobbies, explaining my values. Over and over. It feels less like dating and more like customer support. We crave connection, but we’re exhausted by the long, inefficient, trial-and-error path it takes to get there. The spark of science fiction. Then I watched Black Mirror Season 4, Hang the DJ. In the story, AI avatars run a thousand simulated relationships before telling the protagonists, “Your compatibility is 99.8%.” That moment hit me hard. Why shouldn’t this be possible in real life? With today’s large language models and their reasoning abilities, that sci-fi premise is finally technically plausible. I don’t want to build a product that merely “saves users time.” I want to build something that helps people love.
How we built it
Halo’s Architecture: Deep Agent-to-Agent Simulation Halo is built around deep A2A (Agent-to-Agent) interaction, not surface-level matching. Digital Twin Construction We deliberately rejected the absurd approach of asking users to fill out 50 personality quizzes. Instead, we follow a Zero-Inference Burden principle. With user consent, we ingest their Twitter or Facebook links and use crawlers plus multimodal models to interpret their digital footprints: posts, likes, retweets, and network signals. Input: [ D_{\text{user}} = {P_{\text{text}}, I_{\text{image}}, S_{\text{social_graph}}} ] Output: A Persona Agent with its own prompt system and long-term memory, acting as a functional digital twin of the user. The 1000 Simulations Before User A and User B ever meet, their agents meet first. The system spins up both agents and runs large-scale background simulations: [ R_{\text{final}} = \sum_{i=1}^{n} w_i \cdot \phi(\text{Dialog}_i) ] Where:
- ( n = 1000 ) simulated conversations
- ( w_i ) represents scenario weights (arguments, traveling together, late-night talks, etc.)
- ( \phi ) is an emotional polarity and resonance function Behind the scenes, the agents “date” a thousand times, argue dozens of times, and even simulate breakups—very much like Black Mirror: Hang the DJ. Aha Moment Extraction We don’t dump 1000 conversations onto the user. Instead, we apply RAG to extract the single most emotionally resonant moment: the highlight that makes everything click. What the user sees is not data, but intuition: “Hey. This person gets all your jokes.” That’s the moment we deliver.
Challenges we ran into
Token Cost & Latency High-fidelity simulation at the scale of 1,000 conversations would be astronomically expensive in token usage. Our solution is a Mixed Routing Architecture. Shallow interactions like small talk are routed to low-cost open-source models such as Llama-3 or Mistral. When conversations shift into deep value clashes or emotional depth, the system dynamically escalates to frontier models like GPT-4o or Claude 3.5 Sonnet. This allows us to preserve what we call soul-level quality while keeping cost and latency within practical bounds. Cold Start & Trust A natural concern from users is: “Does this AI really represent me?” Or worse: “Is this just another scam?”
What we learned
While building Halo, my biggest shift in thinking came from deconstructing what “matching” actually means. At first, we were just as captivated by tag-based matching as everyone else. But it didn’t take long to realize something fundamental: the labels users fill in usually describe who they want to be, not who they really are. Tags are static lies. Interaction is dynamic truth. Real resonance can’t be calculated with something as shallow as cosine similarity: [ \text{Similarity}(A, B) = \frac{A \cdot B}{|A| |B|} ] Vector-based comparisons freeze people into snapshots. They miss everything that actually matters. What I learned is this: chemistry doesn’t live in data points. It emerges in the flow of conversation. Whether two people truly connect has very little to do with the fact that they both like Jay Chou. What matters is this: when their AI counterparts start talking about Jay Chou, can they catch each other’s humor? Can they respond in ways that match emotionally, not just semantically? That’s when we made the shift from simple data matching to simulation matching. We stopped looking for similarity. We started looking for friction, spark, and resonance.
Built With
- agent-to-agent-architecture
- ai-native-full-stack
- cloudflare-workers
- conversation-flow-modeling
- digital-twin-construction
- drizzle-orm-type-safety
- edge-first-architecture
- edge-functions
- emotion-polarity-analysis
- facebook-graph-api-integration
- gemini-3-pro
- gpt-4o
- llm-orchestration-system
- long-context-inference
- multi-agent-systems
- multimodal-reasoning
- next.js-16-react-19
- persona-agent-modeling
- postgresql-database
- rag-retrieval-augmented-generation
- relational-data-modeling
- semantic-alignment-without-vectordb
- serverless-compute
- session-based-memory
- simulation-based-matching
- social-graph-crawling
- source-grounding-mechanism
- spotify-preference-api
- streaming-ai-responses
- stripe-payments
- twitter-x-api-integration
- typescript-node.js-stack
- vercel-ai-sdk
- workflow-automation-n8n
- zero-inference-onboarding
Log in or sign up for Devpost to join the conversation.