Skip to content

[contexto]: Scope mindmaps per OpenClaw agent instead of per instance #131

Description

@sm86

Summary

@ekai/contexto should isolate mindmaps per OpenClaw agent by default.

Right now, the plugin flow appears to be instance-scoped: ingestion and retrieval do not seem to carry an explicit agent identifier, so multiple agents on the same OpenClaw instance can end up sharing one Contexto mindmap.

Problem

In multi-agent OpenClaw setups, agents have different roles and histories. If they share the same Contexto mindmap, retrieval can pull in context from the wrong agent.

This causes:

  • cross-agent context leakage
  • lower retrieval precision
  • surprising behavior in multi-agent deployments
  • harder debugging when recalled context belongs to another agent

Expected Behavior

Each OpenClaw agent should read and write to its own Contexto mindmap namespace by default.

A query from Agent A should only search context ingested by Agent A. Shared context, if supported, should be explicit and opt-in.

Proposed Direction

  • derive a stable agentId or equivalent scope from the OpenClaw runtime
  • include that scope in Contexto ingestion payloads
  • include the same scope in mindmap search requests
  • preserve that scope across buffering, compaction, ingestion, and retrieval
  • keep single-agent setups working without extra configuration

Acceptance Criteria

  • two agents on the same OpenClaw instance do not contaminate each other’s mindmaps
  • searches from Agent A do not return items ingested by Agent B by default
  • buffered episodes and compaction preserve the correct agent scope
  • existing single-agent installs continue to work unchanged
  • docs clarify the default isolation behavior for multi-agent setups

Notes

Relevant code paths:

  • packages/contexto/src/engine/utils.ts
  • packages/contexto/src/engine/base.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions