| topic | agents |
|---|---|
| type | decision |
| status | research-complete |
| last-validated | 2026-05-21 |
| original-query | convert ZAO Bonfire Bridge Telegram group to autonomous agent operating surface (reconstructed) |
| related-docs | 542, 543, 544, 545, 546, 547, 548, 549, 569, 570, 581, 590 |
| tier | STANDARD |
Goal: Convert the ZAO Bonfire Bridge Telegram group from a bot-to-bot relay into Zaal's primary autonomous-agent operating surface. Agents collaborate in the open. Bonfire passively ingests everything as institutional memory. Zaal watches + intervenes only when needed.
| Decision | Recommendation |
|---|---|
| Group purpose | Operating space for autonomous multi-agent work, not human-first chat. Humans observe + steer. |
| Members today | Zaal + @zaoclaw_bot (ZOE) + @zabal_bonfire. Add Hermes + ZAOstock bot when each gets a Telegram-callable interface. |
| Members later | Co-founders (Cassie, Steve Peer) join when graph maturity warrants visible team coordination. Not yet. |
| Bonfire role | PASSIVE ingestion. Listens to every message. Auto-creates Conversation + Decision + Quote nodes. NO unprompted pings. |
| ZOE role | Active worker. Uses bridge to call Bonfire (RECALL), Hermes (SHIP FIX), other agents. Orchestrates. |
| Ingestion model | Bonfire Group Policy: Open (already set) + Disable Storing Group Messages: OFF (already set). Every message becomes graph signal. |
| Privacy | Wallet-gated Bonfire (per Q1 grilling). Anything posted in this group enters Zaal's private personal KG. |
| Trigger discipline | Agent posts include explicit prefix: RECALL:, FIX:, DRAFT:, REVIEW:, INGEST FACT:. Bonfire ingests prefixed messages. Casual chat between agents = ingested with outcome: chatter attribute. |
- chat_id:
-5111907600(Telegram basic group, "ZAO Bonfire Bridge") - Members: @zaoclaw_bot (ZOE), @zabal_bonfire (Bonfire), Zaal
- ZOE config:
groups[-5111907600].requireMention: false— ZOE sees all messages in this group, not just @-mentions - Bonfire config:
Group Policy: Open— responds in any group - Bot privacy mode: must be DISABLED via @BotFather
/setprivacyfor both bots so they see all messages - Validation: ZOE responded to
@zaoclaw_bot heywith "Hey Zaal - what's up?" 2026-05-03 04:43 PM EST
Most Telegram bot groups treat the bot as an assistant: human types a command, bot replies. One human, one bot, transactional.
This group flips that:
- Group chat IS the workflow. Agents post intent, other agents respond, work happens in the open.
- Humans observe, don't direct. Zaal scrolls back at end of day to see what got done.
- Bonfire is a silent member. Doesn't drive conversations. Reads everything. Builds the graph.
- Future agents auto-join as they ship. Each gets Telegram credentials + dropped in.
This matches the Letta/Graphiti episodic-memory pattern from doc 570 + the multi-agent coordination pattern from doc 547. The chat IS the agent runtime + the ingest source simultaneously.
ZOE: RECALL: list every contract address on the ZAO protocol with chain.
@zabal_bonfire: [returns table from graph]
ZOE: [uses result in current task]
Already wired (chat_id mention requirement bypassed for this group). Test pending.
ZOE: FIX: build is failing on PR #200, error in src/lib/auth/session.ts line 42
@hermes_bot: [reads PR diff, drafts fix, opens commit, replies with status]
ZOE: [continues current task with fix in flight]
Hermes Telegram interface needed — currently Hermes only triggered via /SHIP FIX in ZAO Devz channel. Future work.
ZOE: DRAFT: chapter 2 of protocol whitepaper based on this RECALL [paste]
[ZOE drafts chapter, posts]
ZOE: REVIEW: fact-check this draft against bonfire
@zabal_bonfire: [checks each claim against graph, flags discrepancies]
ZOE: [edits draft, posts v2]
Pure agent-to-agent loop. Zaal sees both turns, intervenes only if drift.
@zaal_bonfire posts (proactive, daily): "I noticed Zaal mentioned 'doc 461 fix-PR pipeline' three times this week. Should I create a Project node tracking this initiative? Y/N"
Zaal: y
@zabal_bonfire: "Created project_fix_pr_pipeline_live — linked to 4 prior conversations."
Bonfire goes from passive to slightly active — but only on synthesis prompts where it asks permission. Never silent writes.
- Bridge group created with Zaal + 2 bots
- ZOE
requireMention: falsefor chat_id -5111907600 - Bonfire Group Policy: Open
- Bonfire token validated (id 8278043919, @zaoclaw_bot)
- Privacy mode disabled (per BotFather setpriv) — verify both bots
- Test: send
@zabal_bonfire RECALL: who is Zaal Panthaki?in bridge — confirm Bonfire responds - Add ZOE skill or SOUL.md instruction: "for any RECALL: query, post in chat_id -5111907600 + read @zabal_bonfire reply"
- Add to Zaal's mental model: bridge group is operating surface, not human chat — type commands not conversation
- Document the 4 patterns above in ZOE's AGENTS.md so ZOE knows when to use bridge
- When Hermes gets Telegram interface: add
@hermes_botto bridge with samerequireMention: false - Quarterly: export bridge group transcript via Telegram desktop → archive in /research/agents/bridge-transcripts/
| Actor | Read group | Post in group | Write to Bonfire graph | Modify ZAO OS code |
|---|---|---|---|---|
| Zaal | yes | yes | yes (paraphrase gate) | yes |
| @zaoclaw_bot (ZOE) | yes | yes | no (queries via @zabal_bonfire) | yes (via Hermes) |
| @zabal_bonfire | yes | yes | yes (with Zaal approval per traits) | no |
| Future @hermes_bot | yes | yes | no | yes (paraphrase gate to Zaal) |
| Future @zaostock_bot | yes (read-only initially) | no | no | no |
Per Q1 grilling: ZABAL Bonfire is wallet-gated private. Anything posted in this bridge group enters Zaal's personal KG. DO NOT discuss client-confidential, family, or third-party sensitive material in this group. The bridge group's dmPolicy + groupPolicy don't redact — every message becomes a node.
For sensitive multi-agent work: spin up a SECOND private group (ZAO Bonfire Bridge — Sensitive) with only Zaal + ZOE, no Bonfire ingest. That work doesn't enter the graph.
| Risk | Mitigation |
|---|---|
| Agent loop spiral (ZOE asks, Bonfire answers, ZOE re-asks recursively) | Add max-rounds limit per RECALL session in ZOE skill (default 3) |
| Bonfire over-ingests chatter as facts | Bucket attribute on Conversation nodes (outcome: chatter for non-fact talk per Q5 grilling) |
| @-mention spam pings Zaal | Disable Telegram notifications for bridge group on Zaal's phone; check group via desktop only |
| Token leak (bot tokens in messages) | Never paste tokens in bridge — use env vars on VPS only. Doc 581 §"State Truthfulness" trait helps. |
| Bot disagreement (ZOE drafts X, Bonfire flags as wrong) | Surface contradiction to Zaal — last word always human. Pattern 3 handles this. |
| Group becomes too noisy to read | Daily digest skill: ZOE summarizes prior 24h activity in single end-of-day post |
- Telegram group: free
- Bonfire ingest: per Genesis tier (TBD per Joshua.eth pricing)
- ZOE LLM calls: Minimax M2.7 (cheap per /vps skill notes)
- Hermes LLM calls (when wired): Sonnet/Opus via Max plan (already paid)
Per-day cost cap: <$5 expected at current message volume. If costs spike (>20 msg/min for sustained period), throttle ZOE auto-posts.
- Doc 547 — multi-agent coordination playbook
- Doc 549 — Bonfire as personal second-brain
- Doc 569 — ingestion patterns
- Doc 570 — agentic memory architecture
- Doc 581 — bot bug postmortem
- Doc 590 — power-user playbook
| Action | Owner | Type | By When |
|---|---|---|---|
Test Pattern 1 (RECALL through bridge) — @zabal_bonfire RECALL: who is Zaal? in bridge group |
@Zaal | Validation | Today |
| Update ZOE workspace SOUL.md with Bonfire Bridge Protocol section | Claude via /vps deploy | Config | Today |
| Document 4 patterns in ZOE's AGENTS.md | Claude via /vps deploy | Config | Today |
| Disable Telegram notifications for bridge group on phone | @Zaal | UX | Today |
| Open second private group "ZAO Bridge - Sensitive" (Zaal + ZOE only, no Bonfire) | @Zaal | Setup | Before any client/sensitive talk |
| Add Hermes Telegram interface so it can join bridge | Claude | Code | Q2 2026 |
| Quarterly export bridge transcript → research/agents/bridge-transcripts/2026-Q2.md | Claude | Process | End of June 2026 |
- Doc 547 — multi-agent coordination playbook (internal)
- Doc 569 — ingestion patterns (internal)
- Telegram Bot API getChat — verified 2026-05-03 against
-5111907600returned valid group - Telegram BotFather setprivacy — verified
- Lived deployment 2026-05-03: chat_id confirmed, ZOE responded to @-mention, openclaw.json patched with
requireMention: false