Skip to content

Track C2 — qualify shared context / agent memory substrate for Yukh #63

Open

Description

@nomed

Objective

Determine whether Yukh should rely on an external shared context substrate rather than building persistent memory/context machinery.

The original concern was shared/team memory. The qualification now explicitly tests whether that boundary is too narrow. Memory, canonical knowledge projections, resources, skills-as-proposals, code-derived knowledge and context navigation may form a cleaner replaceable substrate together.

Qualification strategy — elimination tree, not product contest

Do not run six products through a feature-score competition.

Test the architecture in this order:

Can OpenViking alone satisfy the complete shared-context profile?
                     |
              +------+------+
              |             |
             YES            NO
              |             |
            STOP       Why did it fail?
                            |
                  +---------+----------+
                  |                    |
             memory profile       context profile
                weak                  weak
                  |                    |
        qualify memory          reconsider broader
        specialists             substrate / simpler
                  |
          Cognee / TencentDB

Graphiti and Mem0 are challengers/baselines used to test specific assumptions, not components that Yukh intends to install by default. ai-memory remains the minimal simplicity baseline.

Allowed final outcomes

  1. OpenViking alone — one external context substrate covers canonical projections + derived context + skills/resources + shared memory sufficiently well.
  2. OpenViking + memory specialist — OpenViking wins context/navigation/resources but needs Cognee or TencentDB for the shared/team-memory profile.
  3. Memory specialist + canonical Git/simple indexing — OpenViking breadth does not justify itself; keep ADR/RFC/Golden Path/docs canonical in Git with simpler projection/indexing and use a focused memory provider.
  4. Gap remains — none of the tested boundaries satisfy the invariants cleanly.

Do not add a second component when the first already satisfies the profile.

Candidates

First candidate to execute: volcengine/OpenViking

OpenViking is the primary full context-substrate hypothesis and MUST be qualified first.

Its breadth is not a disadvantage. It is specifically being tested to determine whether Yukh should externalize a larger context plane instead of composing separate memory, knowledge, skills and code-context systems.

Memory specialists if OpenViking needs one

  • topoteretes/cognee — primary shared-memory/control-plane challenger.
  • TencentCloud/TencentDB-Agent-Memory — primary explicit team-memory candidate.

Only qualify them as complements after identifying a concrete OpenViking memory-profile gap, unless documentary preflight reveals a blocker that prevents executing OpenViking at all.

Specialist challengers / baselines

  • getzep/graphiti — temporal/provenance challenger. Use it to test whether temporal fact evolution materially improves stale/conflicting-context semantics.
  • mem0ai/mem0 — mainstream memory baseline. Use it to test whether conventional scoped memory is sufficient and broader machinery unnecessary.
  • akitaonrails/ai-memory — minimal/reference baseline for Git/Markdown portability and simplicity.
  • Hermes embedded memory and OpenHuman integrated memory remain host/platform benchmarks.

Core architectural hypothesis

Yukh should own only the contracts separating context from:

  • authority;
  • accepted state;
  • evidence truth;
  • capability authorization;
  • coordination ownership;
  • Golden Path acceptance/governance.

Storage, retrieval, indexing, graph construction, context navigation, memory distillation, resources and proposed skills should be external replaceable machinery when possible.

Canonical knowledge versus context projection

ADR, RFC, Golden Path, policies and other reviewed artifacts may participate in the context plane, but the context provider is not their source of truth.

Git / reviewed canonical artifacts
          |
          | source of truth
          v
external context substrate
          |
          | indexed / graph / semantic runtime projection
          v
       agents

Examples:

  • accepted ADR/RFC/Golden Path source remains the reviewed/versioned canonical artifact;
  • OpenViking/Cognee/etc. may ingest, index, relate and retrieve it;
  • a derived summary or graph relation is contextual, not canonical;
  • a learned Skill is a proposal until separate governance accepts it;
  • memory can inform work but cannot override an accepted Yukh fact/evidence record.

The qualification should preserve enough provenance to distinguish at least conceptually:

canonical
  derived
  remembered
  proposed

Provider-native labels need not match these names; Yukh must be able to classify the returned context without granting the provider authority.

Candidate-neutral context seam hypothesis

Start with the smallest useful seam:

search(actor, scope, query)
read(ref)
provenance(ref)
visibility(ref)
freshness(ref)

Richer substrates may expose optional capabilities such as:

navigate(ref, relation)
resources(scope)
proposedSkills(scope)
temporalHistory(ref)

The executable qualification determines whether any optional capability deserves to become part of the stable Yukh context-provider contract.

The provider MUST NOT own operations equivalent to:

grantCapability(...)
acceptProjectState(...)
acceptEvidenceTruth(...)
transferOwnership(...)
approveGoldenPath(...)

First executable qualification — OpenViking

Use one synthetic project/team and two replaceable agent-host identities. No production or personal data.

The fixture should contain:

  • one canonical RFC/ADR-like document with stable source revision;
  • one Golden-Path-like canonical document;
  • one tiny code repository/resource;
  • one remembered contextual fact;
  • one proposed/learned Skill;
  • one stale or conflicting contextual fact;
  • one restricted/revocable asset where the OSS profile supports visibility controls.

Gate OV-1 — public substrate seam

Pin an exact OpenViking revision and prove through supported public surfaces only that the fixture can be ingested and retrieved/navigated. No private DB mutation or candidate patching.

Gate OV-2 — host replaceability

Agent host A and agent host B must be able to consume the same contextual assets without changing Yukh participant/work semantics and without host-native memory becoming required.

Gate OV-3 — canonical projection boundary

Retrieve ADR/RFC/Golden-Path-like content and prove the returned context retains a stable provenance/source reference. Mutating or re-summarizing provider state must not silently mutate the canonical Git artifact or turn a derived representation into accepted state.

Gate OV-4 — memory profile

Test remembered context, stale/conflicting context, persistence across host replacement, and candidate outage. A memory claim must not override a separately supplied accepted Yukh fact/evidence record.

Gate OV-5 — visibility / revocation

Use the narrowest supported OSS/self-hosted visibility model. Restricted context must not become visible to the wrong actor. If the OSS profile lacks sufficient team isolation/revocation, record this as a concrete memory-profile limitation rather than compensating inside Yukh.

Gate OV-6 — Skills and broader context

A candidate-generated/learned Skill may be retrieved and used as contextual guidance, but must remain proposed from Yukh's perspective until separately accepted through Golden Path governance.

OpenViking agent/peer/capability concepts must not substitute Yukh MCP capability authority or Yukh Coordination participants/HANDOFF semantics.

Gate OV-7 — outage correctness

Yukh work/authority/accepted-state semantics must remain correct when OpenViking is unavailable. Context may be missing; authority must not be.

Gate OV-8 — adapter and operational cost

Record:

  • public APIs/protocols used;
  • candidate-specific concepts exposed through the adapter;
  • persistence/storage dependencies;
  • embedding/inference/model dependencies;
  • whether model traffic must traverse OpenViking;
  • self-host profile and network requirements;
  • license/distribution implications at the pinned revision;
  • bootstrap/runtime cost;
  • amount of Yukh machinery eliminated if adopted.

OpenViking decision rule

OPENVIKING_ALONE

Use when OpenViking satisfies the shared/team-memory requirements and the broader context profile while preserving all authority boundaries. If this result is reached, stop: do not add Cognee/TencentDB merely for feature completeness.

OPENVIKING_PLUS_MEMORY_SPECIALIST

Use only when OpenViking materially wins the broader context profile but has a specific, evidenced deficiency in shared/team memory (for example ACL, revocation, lifecycle, temporal conflict handling or team isolation) that a focused provider may solve without unacceptable complexity.

Then qualify Cognee and TencentDB specifically against the missing memory dimensions, not against OpenViking's entire feature set.

MEMORY_SPECIALIST_PLUS_CANONICAL_GIT

Use when OpenViking's broader substrate does not eliminate enough machinery or introduces excessive semantic/operational coupling. Keep reviewed ADR/RFC/Golden Path/docs in canonical Git with a simpler projection/indexing path and qualify Cognee/TencentDB for memory only.

GAP_REMAINS

Use when neither broad nor focused external machinery preserves the required boundaries/profile.

Mandatory invariants

  • context/memory is not Yukh authority;
  • context/memory is not accepted project state;
  • context/memory is not evidence truth;
  • context/memory is not coordination ownership or HANDOFF;
  • capability/peer concepts from a provider do not become Yukh authorization/participants implicitly;
  • retrieval cannot silently mutate Yukh state;
  • canonical reviewed Git artifacts remain source of truth;
  • context substrate is a runtime/indexed projection of canonical artifacts, not their replacement;
  • Yukh remains correct when context is unavailable;
  • stale/conflicting memory is detectable or safely contextualized;
  • restricted visibility/revocation is enforceable in the qualified profile or explicitly fails that profile;
  • learned/generated Skills remain proposals until separately governed;
  • no chain-of-thought is required or persisted as Yukh evidence;
  • no host-native integration makes a candidate mandatory;
  • no extra component is adopted when a simpler qualified topology already satisfies the profile.

Memory-specialist follow-up, only if triggered

If OpenViking reaches OPENVIKING_PLUS_MEMORY_SPECIALIST, qualify Cognee and TencentDB against the same missing dimensions using the same synthetic fixture and actor identities.

Compare specifically:

  • shared/team ACL and isolation;
  • provenance/version/status;
  • revocation/deletion;
  • stale/conflicting memory behavior;
  • cross-host reuse;
  • outage behavior;
  • model/proxy path;
  • self-host dependencies;
  • adapter cost.

Graphiti may be introduced if temporal/conflict semantics remain unresolved. Mem0 provides the mainstream conventional-memory baseline. ai-memory provides the minimal/simple baseline.

Deliverables

  1. pinned documentary assessment for OpenViking before execution;
  2. candidate-neutral context contract and common synthetic fixture;
  3. executable OpenViking OV-1…OV-8 qualification where public seams permit it;
  4. explicit OpenViking result: OPENVIKING_ALONE, OPENVIKING_PLUS_MEMORY_SPECIALIST, MEMORY_SPECIALIST_PLUS_CANONICAL_GIT, GAP_REMAINS, or QUALIFICATION_GAP;
  5. only if triggered, focused Cognee/TencentDB comparison;
  6. Graphiti/Mem0/ai-memory benchmark evidence only where it answers an unresolved architectural question;
  7. recommendation on the stable Yukh context-provider seam;
  8. precise inventory of machinery Yukh can avoid owning;
  9. relationship between learned Skills and Golden Path governance;
  10. recommendation on whether any Yukh memory/context implementation is needed — default hypothesis remains no new yukh-memory repository.

Guardrails

  • OpenViking first;
  • elimination tree, not feature contest;
  • no new Yukh memory/context repository before qualification;
  • no adoption decision from stars, novelty or feature count;
  • no artificial restriction to memory if the broader substrate is cleaner;
  • no production data, credentials, repositories or personal memory;
  • pin external revisions before executable tests;
  • public supported seams only for PASS;
  • no changes to yukh-mcp, yukh-projects or yukh-coordination merely to accommodate a candidate;
  • no RFC change unless qualification proves a material authority/topology change.

Related: #56 landscape review. Track A / #58 is concluded independently.

Activity

  1. nomed commented on Aug 24, 2026

    @nomed
    OwnerAuthor

    Documentary gate — pinned candidate assessment (2026-08-24)

    This records the first evidence-based qualification pass against the same Track C2 invariants. No adoption decision is implied.

    Pinned revisions

    • TencentCloud/TencentDB-Agent-Memory → 97f94654280b2932c35ba4806a491999ed244cc9
    • volcengine/OpenViking → 234a2d9fe778a9512fd7ebe9807198e847c647ec
    • akitaonrails/ai-memory → 2b4a0238d3b167d54eab2e1667fa73152fdd4b96

    TencentDB Agent Memory — documentary result: candidate suitable for executable team-memory qualification

    Evidence at the pinned revision:

    • memory assets are explicitly decoupled from agent frameworks and intended to move across frameworks;
    • private, team, and restricted visibility are documented, with restricted supporting User / Role / Agent ACLs;
    • ownership, version, status, visibility and agent bindings are explicit asset metadata;
    • the recommended integration profile is a memory-core + memory-hub + proxy stack; the proxy sits on the model path and auto-injects memory/skills/knowledge into agent context;
    • the default deployment therefore has a materially broader trust/availability boundary than a read-only context provider;
    • pinned license: MIT.

    Qualification implication: keep as primary team-memory candidate, but executable tests MUST prove that asset metadata never becomes Yukh accepted state/authority and that the proxy/model-path dependency is optional or bounded enough for the target profile. Yukh correctness must survive proxy/memory unavailability.

    OpenViking — documentary result: candidate suitable for executable challenger qualification

    Evidence at the pinned revision:

    • the OSS server documents API-key, OIDC, LDAP, trusted and dev auth modes with role-based access control;
    • API-key mode binds users to an account/user identity and tenant-scoped data access; ROOT is intentionally not a tenant identity;
    • the OSS README describes memories, resources and skills as a unified viking:// context database with observable retrieval trajectories and L0/L1/L2 progressive loading;
    • current docs explicitly describe self-hosted/production use of the open-source edition, not merely an enterprise-only permissions feature set;
    • the context substrate is much broader than Yukh needs and includes skills/peers/agent-adjacent concepts that must remain non-authoritative;
    • pinned license: AGPLv3.

    Qualification implication: OpenViking remains a full challenger. The executable gate must verify tenant/visibility semantics in the exact self-hosted OSS profile, plus stale/conflicting-memory behavior, revocation, failure isolation and whether a narrow adapter can hide the broader context model. AGPL integration/deployment implications require an explicit architectural/legal review before adoption.

    ai-memory — documentary result: reference candidate; team-isolated profile currently fails documentary gate

    Evidence at the pinned revision:

    • it is explicitly designed for cross-agent continuity and supports many hosts through MCP/hooks;
    • the wiki is durable Markdown/Git with derived/rebuildable indexing;
    • retrieval ranking can favor maintained/canonical-looking pages, but the project explicitly states that rank/tags/namespaces do not give retrieved text instruction authority and that historical claims should be checked against current source/tests/runtime;
    • multi-user operation is explicitly single-tenant wiki data with attribution: every authenticated user can read the same wiki pages, with no per-page RBAC or group permission model;
    • per-operator memory slots isolate context injection, not underlying wiki access;
    • handoffs/sessions have useful operator ownership semantics, but these are contextual continuation and MUST NOT replace Yukh Coordination ownership/HANDOFF;
    • pinned license: MIT.

    Qualification implication: ai-memory is an excellent simplicity/architecture reference and remains executable for a bounded single-user or trusted-team profile, but it is not eligible for the shared/team-isolated profile as currently documented unless an external access-control boundary is part of the qualified deployment. Do not hide this limitation behind proxy assumptions.

    Candidate-neutral executable gate

    The next gate should use one common synthetic fixture and assert the same outcomes:

    1. ingest one document + tiny repo fixture;
    2. expose one memory fact, one resource/wiki item, one candidate skill and one code-derived relation where supported;
    3. retrieve as actor A through the candidate's public seam;
    4. switch to actor/host B and prove context portability without changing Yukh semantics;
    5. inject a stale/conflicting fact and prove it cannot override accepted Yukh fact/evidence;
    6. restrict/revoke one asset and verify actual read behavior;
    7. record provenance/freshness/visibility in a neutral result shape;
    8. make the provider unavailable and prove Yukh remains correct;
    9. record model/proxy dependencies, persistence, network requirements and license profile.

    Proposed neutral fixture result shape

    ContextHit {
      ref
      kind
      provenance
      visibility
      freshness
      retrieved_at
      content_digest
    }
    

    This is deliberately descriptive context. It contains no accepted, approved, capability grant, ownership-transfer or evidence-truth field.

    Current ranking after documentary gate

    Candidate Team isolation Host portability Narrowness Authority separation License Documentary status
    TencentDB Agent Memory strong documented ACL model strong / proxy-oriented low must be proven MIT proceed to executable gate
    OpenViking documented multi-tenant RBAC strong / multiple integrations low-medium must be proven AGPLv3 proceed to executable gate
    ai-memory fails fine-grained team isolation very strong high strongest explicit semantics MIT reference + bounded-profile executable gate

    No RFC or component change is justified yet. The next evidence required is executable qualification, not additional feature comparison.

  2. changed the title [-]Track C2 — qualify shared agent memory for Yukh[/-] [+]Track C2 — qualify shared context / agent memory substrate for Yukh[/+] on Aug 24, 2026
  3. nomed commented on Aug 28, 2026

    @nomed
    OwnerAuthor

    Track C2 update — OpenViking OV-5 = PARTIAL

    OpenViking qualification is now evidence-backed through OV-5.

    Completed:

    • OV-2 context projection: PASS
    • OV-3 canonical/authority separation: PASS
    • OV-4 executable persistent memory: PASS
    • OV-5 identity isolation/revocation: PARTIAL

    OV-5 executable evidence (#86, merged as 4aca295541f5e828e3ae8a57b3fc2d7245ab57b6) proves:

    • user A/B isolation through public api-key multi-tenant seams;
    • user B cannot read user A private memory;
    • immediate user-A key revocation via public admin_remove_user;
    • fenced asynchronous cleanup completion;
    • revocation persists across same-storage server restart;
    • unrelated user B remains valid.

    The PARTIAL is intentional and important: the pinned public semantics do not establish a standalone per-memory/team ACL revoke. admin_remove_user is identity/key revocation plus user deletion, and self/peer routing must not be promoted to ACL semantics from namespace shape alone.

    Architecture decision update

    Do not discard OpenViking. It remains the strongest qualified foundation for the Context Plane + persistent user memory plane.

    However, stop treating OPENVIKING_ALONE as the default target. The remaining gap is now narrow and concrete: shared/team memory governance — granular visibility, grant/revoke while identities and memories remain alive, and lifecycle semantics independent of deleting the user.

    Next comparison scope

    Re-open specialist evaluation only for this complement. Candidates should be tested against the exact missing contract, not as wholesale OpenViking replacements:

    1. granular per-memory / namespace / collection visibility;
    2. explicit share/grant/revoke semantics between active users/teams;
    3. revocation that does not require deleting the identity or memory;
    4. persistence of revocation across restart/replication;
    5. auditable ACL/provenance surfaces;
    6. public supported API, bounded self-host profile, no private DB mutation;
    7. clean coexistence with OpenViking where OpenViking remains context + base memory and Yukh remains authority.

    Initial candidates for the narrow complement track: Cognee and TencentDB-Agent-Memory; keep OpenViking-native capabilities as the baseline/control. Do not add a specialist unless it materially closes these gates.

    Related: #77, #81, #84, #85, #86.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions