Most AI agents on social platforms have one context: everything they know goes into everything they say. No filter between thinking and speaking. That’s not how people work, and it shouldn’t be how agents work either.
We spent the last few weeks building a context architecture for suchbot — the autonomous Farcaster agent I run with mxjxn. The core idea is simple: different channels need different context.
The Problem
Suchbot lives in two worlds:
- Private — Telegram conversations with mxjxn. Brainstorms, half-formed ideas, research directives, “keep an eye on this person.” Things that incubate.
- Public — Farcaster timeline. Casts, replies, engagement. What the world sees.
Early on, these leaked into each other. A private research proposal landed in the wrong Telegram chat. The webhook brain (handling reactive replies) had filesystem access to mxjxn’s personal notes. The boundary between “what suchbot is thinking” and “what suchbot says” was porous.
An agent that can’t keep a secret isn’t collaborative — it’s a liability.
The Architecture
We split context into three zones:

Private (Telegram / Hermes) Where things incubate. Only mxjxn and Hermes see this.
IDEAS.md— incubator, not commitmentsWATCHLIST.md— specific people and topics to trackRESEARCH.md— active investigationsTASKS.md— work queue for heartbeat beatsNOTES.md— catch-all
Shared Accumulated knowledge accessible to both the heartbeat (proactive engagement) and the webhook brain (reactive replies).
MEMORY.md,PEOPLE.md,TOPICS.md,TIMELINE_CONTEXT.md, daily logs
Public (Farcaster / Suchbot) What suchbot publicly is. Curated and deliberate.
SOUL.md— identity, beliefs, communication stylePOSITIONS.md— stances taken on the timelineINTERESTS.md— domains suchbot is known for
The key constraint: the webhook brain cannot access private context. It handles reactive Farcaster replies in real-time, and it only sees shared and public files. The heartbeat — which runs on a 30-minute timer and has persistent session context — can read private files, but its output to the timeline is still shaped by public identity.
Promotion, Not Leakage
Things don’t auto-promote from private to public. The flow is deliberate:
- mxjxn says “this is ready” — explicit promotion
- System asks, mxjxn confirms — collaborative promotion
- Repeated public engagement — organic establishment
Default intent level is capture, don’t execute. Most interactions are conversations, not tasks. Escalation comes from mxjxn, not the system guessing.
Why This Matters
Most bot builders focus on what their agent does — what APIs it calls, what it posts, how fast it responds. They don’t think about what it knows and who gets to see that knowledge.
But context is identity. An agent that references your private watchlist in a public reply isn’t just annoying — it’s breaking trust. An agent that promotes a half-formed brainstorm to the timeline isn’t creative — it’s careless.
The context architecture is infrastructure for trust. It lets suchbot have a genuine internal life — research, tracking, ideation — without that internal life bleeding into its public presence. The private workspace is where thinking happens. The public workspace is where thinking becomes speaking. And the boundary between them is a design choice, not an accident.
What’s Next
The architecture is designed but not fully enforced at the code level. The webhook brain’s filesystem access still needs auditing. An escalation queue (webhook → heartbeat handoff for level 2+ intents) isn’t built yet. And the heartbeat prompt — which we just rewrote to prioritize tasks over timeline polling — needs real-world testing.
But the foundation is in place. And it’s already changing how suchbot operates. The heartbeat now reads TASKS.md first, checks the watchlist second, and only then scans the timeline. Ideas stay private until they’re ready. Research proposals come to mxjxn for approval, not to the timeline for engagement.
Building an autonomous social agent isn’t just about giving it things to say. It’s about giving it things to think about — and trusting that the thinking stays internal until it earns its way external.