Skip to main content
Engra

Common Knowledge shared library

One read-only, platform-managed memory library for facts every team should know. Operators write product docs, API contracts, and runbooks; each workspace merges shared hits into retrieval by default (opt-out per team or library).

What it is

Common Knowledge is the single memory_libraries row with library_kind = platform_shared. It appears in every team's memory_list_libraries result, but only the platform operations team that owns the row can write. Use it for: terminology, public API behavior, plan limits, MCP tool usage, org-wide coding conventions, and other cross-tenant facts.

Access model

Read
All teams with memory:read — list, search, recall, wake-up, list_atoms
Write
Platform ops team only (memory:write + library team_id matches owner)
Quota
Does not count against per-team library creation limits
Delete
platform_shared libraries cannot be deleted

Retrieval merge

When includeSharedCommonInRetrieval is true (default), queries against a team-owned library also search Common Knowledge and merge top hits by similarity (deduped by atom id). Querying the shared library directly does not merge itself again.

  • memory_search / memory_recall — merged hits; response may include sharedCommonIncluded: true
  • memory_wake_up — with augmentQuery, appends a ## Shared common knowledge section to combined context
  • Hit metadata — may include memoryLibraryId and source: team | platform_shared

Configuration cascade

LevelConsoleSetting
Per library/dashboard/memory/[libraryId]/settingsincludeSharedCommonInRetrieval — inherit | on | off
Per team/dashboard/memory/settingsincludeSharedCommonInRetrieval — boolean
Platform/dashboard/platformDefault: include shared knowledge in retrieval

null / inherit follows the parent level. When off, only team-owned atoms are returned.

API and MCP

  • REST /api/v1/memory/* — pass a team library memoryLibraryId for merged retrieval; pass the shared id to browse shared atoms only
  • Fixed label `common` (`library_label`); wikilink examples: [[common:scope/topic]] or [[common:scope/topic/title: field]]
  • MCP memory_list_libraries — includes label, libraryKind, readOnly, linkedLibraryScope
  • MCP write tools — non-owner teams get memory_library_read_only for the shared library id
  • Platform create — POST /api/platform/memory/shared-library (platform admin session, once)

Console paths

RolePathAction
Platform admin/dashboard/platformCreate library, platform default toggle, manage atoms
Any team/dashboard/memoryShared badge in list; read-only teams have no write/delete
Team admin/dashboard/memory/settingsTeam-level merge toggle
Library admin/dashboard/memory/[id]/settingsPer-library inherit / on / off

Recommended agent workflow

  • Still call memory_list_libraries and use a team project library as the primary memoryLibraryId
  • No need to pass the shared library id when merge is on — search / recall / wake-up include common knowledge automatically
  • If source is platform_shared and a hit is wrong, contact platform ops — do not memory_correct_atom on behalf of other tenants
  • Platform operators should search team libraries before writing duplicates into Common Knowledge

Operations (platform)

  1. npm run db:d1:migrate:remote (migration 0046_platform_shared_common_library.sql)
  2. Deploy the Next.js app and memory-mcp-proxy worker
  3. Platform admin → /dashboard/platform → Create Common Knowledge library
  4. Ingest shared atoms from the library page or via MCP

Agent Memory MCP · Concept guide · Blog: Common Knowledge · Memory console