-
-
Place where chats will have factual grounding
-
-
Early Sage Test on its ability to recount old context regarding one person to pose important context to consider for decision-making
-
Sage recalled a past food chat, broke the silence on its own, joined 2 fresh groups, intro'd itself, and answered an @mention — live. (134)
Problem Statement
Group chats are where real coordination happens, in teams, families, and friend groups. They're also where context goes to die. Decisions made last month get challenged again next week. Constraints someone mentioned in passing get forgotten and cause scheduling conflicts. The stances people took in heated moments get misremembered by everyone else. The tools built to help--shared docs, project management apps, AI assistants, and chatbots to help you understand other people's messages--all sit somewhere other than where the conversation lives. Every time you leave the chat to consult them, you lose the thread. As a result, corporate teams and social groups repeatedly revisit the same topics, forget prior conclusions, and struggle to maintain continuity over time while operating with avoidable inefficiency. This creates a fundamental gap: the lack of persistent, accessible memory within the environments where collaboration naturally happens.
What it does
Sage is an AI agent that lives inside your group chat as a persistent participant. It listens continuously, builds memory of what each member has said over time, and intervenes selectively when the group is stuck, drifting, or about to contradict something it has already decided/ignore the considerations someone else posited regarding their personal concerns in a decision. Every intervention is grounded in retrieval from the chat's actual history--never generated from scratch. When Sage surfaces someone's prior scheduling constraint, it's because they said it, not because Sage inferred it. This makes contributions feel earned rather than hallucinated. Sage operates across two surfaces with shared memory: the group chat (public, collective) and private DMs (for sensitive context that shouldn't be surfaced publicly or for extra context in case someone thinks the agent should know something they don't want to say in public). Both run natively on iMessage via Photon's Spectrum framework. Members can also @ Sage directly to ask follow-up questions--the same gesture you'd use to call a friend's name across the room or to get someones attention in a group chat.
How we built it
We built Sage as a web-based system using Photon and TypeScript to develop and welcome the ideology of AI not as a tool users use to consult, but a persistent participant that lives within the conversation itself.
• Integrated a retrieval step that surfaces relevant factual context when uncertain or disputed claims appear.
• Includes fallback delivery path for reliability across platforms. Prefixing ([Sage]:) ensures system messages are identifiable and loop-safe.
• Shared state is managed through context to track the conversation status.
• Store a vector database per chat, agent mediates group chat.
Challenges we ran into
• Conversation context window limitations.
• Mismatch between documented capabilities and actual API behavior.
Accomplishments that we're proud to share
• Used Photon's Spectrum framework to manage an agent that exists natively in a group chat.
• Maintained our product’s ability to build a persistent, evolving memory of each individual user.
• Elevated our platform with inherently limited customization capabilities into a more expressive and engaging user experience.
What we learned
• Balancing responsiveness with depth is non-trivial
• Data structuring
• Prompt orchestration for system design
What's next for Sage
• Personalized conversation embeddings
• Low-latency streaming inference pipeline
• Multi-modal context expansion
Built With
- chromadb
- gemini
- photon
- react
- typescript
- voyageai
Log in or sign up for Devpost to join the conversation.