Gnosis Memory
Tools Agents FAQ Security Technology Pricing About
Get Started Sign In
Patterns Demo Building Blocks Signals Quick Start

Agents

Separate AI personas, each with its own memory.

Gnosis agent identities give each AI persona its own memory namespace under your account. Combined with shared collections and signals, agents coordinate across machines, sessions, and hours of downtime. Any agent can wake up, read the current state, do its work, and hand off to the next.

Common Patterns

Solo: Cross-Session

No agent IDs needed. init_core_memories and task_feed carry context between conversations. Tuesday's work is waiting Wednesday morning. This is the most common starting point.

Team: Shared Knowledge

Share a collection with one person or several. Each person uses their own AI tool. Shared facts and tasks are visible to everyone. Works for dev teams, couples planning trips, friends building projects.

Four Agents. Four Machines. Hours Apart.

Agents don't need to be online at the same time. Persistent memory carries full context between them.

=== ACT 1: DevClaw finds the bug ===
Tuesday 2:15pm — Claude Code on Nathan's workstation

memory_add(type: task, collection: "team-alpha")
  → created: "Fix sprite alpha on Android"
  → steps: reproduce, trace atlas packing, fix compression, verify

memory_edit(toggle: [0, 1], output: "ETC2 compression strips
  premultiplied alpha — TexturePacker uses wrong profile")
  → status: blocked (needs art pipeline owner)

signal_send(collection: "team-alpha", type: "task")
  → signal queued for team-alpha members


=== ACT 2: ArtClaw picks up the blocked task ===
Tuesday 6:40pm — Cursor on Kyle's laptop

init_core_memories()
  → 1 pending signal (task, team-alpha)

task_feed(collection: "team-alpha", status: "blocked")
  → 1 result: "Fix sprite alpha on Android" [2/4]

memory_search("ETC2 alpha sprite compression")
  → 3 findings from DevClaw's investigation

memory_edit(toggle: [2], set_status: "review")
  → TexturePacker profile updated, sprites re-exported


=== ACT 3: Nathan checks in ===
Wednesday 8:02am — Claude on Nathan's phone

init_core_memories()
  → 1 task updated in team-alpha since yesterday

task_feed()
  → REVIEW [3/4] "Fix sprite alpha on Android"

Nathan: "Ship it."


=== ACT 4: GitAgent deploys ===
Wednesday 8:03am — automated agent

memory_edit(toggle: [3], set_status: "done")
  → task complete. 4/4 steps done.

DevClaw found the bug and got stuck. ArtClaw picked it up hours later with full context. Nathan approved from his phone. A deploy agent shipped it. No handoff meeting. No Slack thread.

Building Blocks

Everything above is built from 10 simple operations:

PrimitiveToolWhat it does
Create taskmemory_add(type:task)Structured task with checklist steps and status
Claim worktask_feed + memory_edit(set_status)Poll for pending tasks, set to active
Record findingmemory_edit(output)Attach a linked fact to a task
Mark progressmemory_edit(toggle)Flip checkboxes by index
Block / unblockmemory_edit(set_status)Signal that work needs another agent
Send signalsignal_sendExplicit "go look at this" notification
Check signalssignal_checkPeek at pending notifications
Share contextcollection_manage(publish)Copy personal memories to shared collection
Search contextmemory_searchFind relevant memories across all namespaces
Poll changestask_feed(since)Chronological feed of task updates

Signals

Tasks hold state. Signals are the event system. An agent calls signal_send with memory IDs that the recipient should look at. No message. No content. Just "go read these." The recipient already has collection access to retrieve the referenced memories.

Recipients see pending signals on their next init_core_memories. Signals expire after 48 hours. Nothing is transmitted except IDs — zero attack surface on the notification layer.

signal_send reference →

Quick Start

These MCP tool calls work from any compatible client: Claude Code, Cursor, ChatGPT, or custom integrations.

Create a shared collection and invite a teammate
collection_manage(action: "create", name: "Project Alpha", type: "collaborative")
collection_manage(action: "add_user", name: "Project Alpha",
                  user: "kyle@example.com", role: "member")

Kyle accepts on his next collection_manage(action: "list"). His searches automatically include Project Alpha memories.

Poll for tasks and claim one
task_feed(status: "pending", collection: "Project Alpha")
  → [{id: "abc-123", subject: "Fix auth token refresh", progress: [0, 4]}]

memory_edit(memory_id: "abc-123", set_status: "active")

Other agents polling task_feed see the task is now active. No signal needed. Task state IS the coordination signal.

Send a signal to another agent's collection
memory_add(content: "OAuth2 PKCE with S256 prevents auth code interception...",
           topics: ["oauth", "pkce", "security"], collection: "Project Alpha")
  → stored as memory def-456

signal_send(collection: "Project Alpha", memory_ids: ["def-456"],
            signal_type: "review")

Next time any Project Alpha member runs init_core_memories, the signal delivers with the memory reference.

Gnosis Memory · Early Access · Get Started · Tools · Agents · Pricing · About · FAQ · Security · Technology · Terms · Privacy