{"ref":"artifact:mi8y-cap-agents-memory","page":"/artifacts/mi8y-cap-agents-memory","json":"/artifacts/mi8y-cap-agents-memory.json","generated":"2026-10-27","drafted_with_ai":true,"entity":{"id":"mi8y-cap-agents-memory","name":"@mi8y/cap-agents-memory","artifact_type":"cds-plugin","ecosystem":"cap","domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"A LangGraph Store written against CDS: the facts and preferences an agent keeps between sessions are entities in the CAP database, read and written inside a request handler under its tenant.","short":"LangGraph Store keeping agent memory as CDS entities","what_it_solves":"LangGraph splits an agent's state in two, a checkpointer for one thread and a Store for what has to outlive it. `CdsMemoryStore` implements the Store API, so a user's preferences and the facts an agent has learnt are rows in `plugin.langgraph.memory.StoreItems`, which `cds add agent-memory` writes into `db/`, and a call made inside a CAP request handler inherits the active database and tenant; the CDS queries behind it run on CAP's SQLite, SAP HANA and PostgreSQL adapters. Its operations are `put`, `get`, `delete`, `search`, `listNamespaces` and `batch`; without embeddings a search matches stored field values, and passing a LangChain `Embeddings` implementation embeds fields on write and the query on read, against a generated `Vector(1536)` field that has to be resized to the chosen model. Thread-scoped state is not its job: the author offers it as an add-on to [@cap-js/agents](artifact:cap-js-agents), which keeps the model, the generated tools, the A2A endpoint and the checkpointer, so this package contributes the cross-session Store and the tools that read it. [@mi8y/cds-langgraph-persistence](artifact:mi8y-cds-langgraph-persistence) held the thread-scoped half before that checkpointer arrived."},"links":{"npm":"https://www.npmjs.com/package/@mi8y/cap-agents-memory","repo":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory"},"identity":{"license":"MIT"},"compat":{"runtimes":["node"],"cds_range":">=10","typed":true},"provides":[{"capability":"capability:agent-tooling","what_it_does":"Cross-thread long-term memory for an agent, as a LangGraph Store whose items are CDS entities read and written under the request's database and tenant.","facets":[{"key":"brings","value":["State between turns"],"source":{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, opening line","checked":"2026-10-15","quote":"CDS-backed long-term memory for LangGraph. `CdsMemoryStore` implements LangGraph's Store API, so facts and preferences can be shared across threads while remaining within CAP's database and tenant context."},"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"harness","value":["LangGraph"],"source":{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, opening line","checked":"2026-10-15","quote":"`CdsMemoryStore` implements LangGraph's Store API, so facts and preferences can be shared across threads while remaining within CAP's database and tenant context."},"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"state_store","value":"In the application database","source":{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, CAP notes","checked":"2026-10-15","quote":"Use the Store inside CAP request handlers to inherit the active database and tenant context."},"applies_to":{"ecosystems":["cap"],"flavors":["node"]}}],"sources":[{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README","checked":"2026-09-23","quote":"CDS-backed long-term memory for LangGraph. `CdsMemoryStore` implements LangGraph's Store API, so facts and preferences can be shared across threads while remaining within CAP's database and tenant context."},{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, CAP notes","checked":"2026-09-23","quote":"Use the Store inside CAP request handlers to inherit the active database and tenant context."},{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, CAP notes","checked":"2026-09-23","quote":"CAP-supported SQLite, SAP HANA, and PostgreSQL adapters are supported by the CDS query implementation."},{"url":"https://github.com/mi8y/cap-agents-addons/tree/main/packages/cap-agents-memory","title":"@mi8y/cap-agents-memory — README, prerequisites","checked":"2026-10-15","quote":"Requires `@sap/cds >= 10` and `@langchain/core >= 1`."},{"url":"https://community.sap.com/t5/artificial-intelligence-blogs-posts/building-cap-agents-that-remember-announcing-cap-agents-memory-plugin/ba-p/14489784","title":"Building CAP Agents That Remember - Announcing `cap-agents-memory` Plugin — SAP Community","checked":"2026-09-23","quote":"The package is designed as an add-on for @cap-js/agents and extends it with a persistence layer for application-defined memories that can be shared across agent conversations."},{"url":"https://community.sap.com/t5/artificial-intelligence-blogs-posts/building-cap-agents-that-remember-announcing-cap-agents-memory-plugin/ba-p/14489784","title":"Building CAP Agents That Remember - Announcing `cap-agents-memory` Plugin — SAP Community","checked":"2026-09-23","quote":"The CAP Agent runtime still provides the model, generated tools, system prompt, middleware, A2A endpoint, and checkpointing. The memory add-on contributes only the cross-session Store and the tools that use it."}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-21"},"maintainers":["actor:anselm94","actor:mi8y"],"contributors":["actor:anselm94"],"history":[{"date":"2026-09-23","field":"description.what_it_solves","from":"LangGraph splits an agent's state in two, a checkpointer for one thread and a Store for what has to outlive it. `CdsMemoryStore` implements the Store API, so a user's preferences and the facts an agent has learnt are rows in `plugin.langgraph.memory.StoreItems`, which `cds add agent-memory` writes into `db/`, and a call made inside a CAP request handler inherits the active database and tenant. Its operations are `put`, `get`, `delete`, `search`, `listNamespaces` and `batch`; without embeddings a search matches stored field values, and passing a LangChain `Embeddings` implementation embeds fields on write and the query on read, against a generated `Vector(1536)` field that has to be resized to the chosen model. Thread-scoped state is not its job: [@mi8y/cds-langgraph-persistence](artifact:mi8y-cds-langgraph-persistence) holds that, and [@cap-js/agents](artifact:cap-js-agents) has since added a checkpointer of its own.","to":"LangGraph splits an agent's state in two, a checkpointer for one thread and a Store for what has to outlive it. `CdsMemoryStore` implements the Store API, so a user's preferences and the facts an agent has learnt are rows in `plugin.langgraph.memory.StoreItems`, which `cds add agent-memory` writes into `db/`, and a call made inside a CAP request handler inherits the active database and tenant; the CDS queries behind it run on CAP's SQLite, SAP HANA and PostgreSQL adapters. Its operations are `put`, `get`, `delete`, `search`, `listNamespaces` and `batch`; without embeddings a search matches stored field values, and passing a LangChain `Embeddings` implementation embeds fields on write and the query on read, against a generated `Vector(1536)` field that has to be resized to the chosen model. Thread-scoped state is not its job: the author offers it as an add-on to [@cap-js/agents](artifact:cap-js-agents), which keeps the model, the generated tools, the A2A endpoint and the checkpointer, so this package contributes the cross-session Store and the tools that read it. [@mi8y/cds-langgraph-persistence](artifact:mi8y-cds-langgraph-persistence) held the thread-scoped half before that checkpointer arrived.","reason":"The announcement post of 2026-09-22 states what the package is an add-on to, which the entry named only as a neighbour that had since gained a checkpointer: 'The package is designed as an add-on for @cap-js/agents and extends it with a persistence layer for application-defined memories that can be shared across agent conversations', and 'The CAP Agent runtime still provides the model, generated tools, system prompt, middleware, A2A endpoint, and checkpointing. The memory add-on contributes only the cross-session Store and the tools that use it.' The same post dates the older package's position, 'I explained ... And went on to introduce the @mi8y/cds-langgraph-persistence plugin for durable state management within CAP agents. But it's already obsolete by now, as CAP itself has a built-in Checkpointer mechanism.' The README's line on which CAP database adapters the CDS queries run against had been left out. Both post quotes and the adapter line are now on the provides edge. Re-read on 2026-09-23 and unchanged: the repository, the MIT licence, the '@sap/cds >= 10' and '@langchain/core >= 1' peer dependencies, the generated entities, the Store operations and the Vector(1536) field."},{"date":"2026-10-15","field":"provides.agent-tooling.facets","from":null,"to":"brings: State between turns, harness: LangGraph, state_store: In the application database","reason":"capability:agent-tooling declared four comparison properties on 2026-10-15. Three are answered from the README's own opening and CAP notes, re-read the same day and unchanged, scoped to the node flavor: the package holds state between turns, it is written against LangGraph's Store API, and that state is rows in the CAP database under the request's tenant. The approval property is left out: the README says nothing about it."}],"drafted_with_ai":true},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"1 month since release"},{"label":"Continuity","tier":"good","evidence":"3 contributors, 2 publishers, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=10 — includes cds 10"},{"label":"Survived majors","tier":"unknown","evidence":"first released after @sap/cds 10 shipped"},{"label":"Maintainer's CI","tier":"good","evidence":"release green, 2026-10-21"}],"practice":[{"label":"Tests","tier":"good","evidence":"24 test files, npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 1 page, README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":9,"unit":"installs/week"},{"value":2,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"0.2.0","majors":{"0.2":{"version":"0.2.0","date":"2026-09-17"}},"license":"MIT","first_release":"2026-09-17","last_release":"2026-09-17","releases":1,"cadence_days":null,"maintainers":2,"repository":"git+https://github.com/mi8y/cap-agents-plugins.git","repository_directory":null,"peer_cds":">=10","test_script":true,"types":true,"downloads_weekly":9,"stars":2,"forks":0,"open_issues":2,"archived":false,"pushed_at":"2026-10-21","license_spdx":"MIT","org_owned":true,"default_branch":"main","contributors":3,"tree_truncated":false,"test_files":24,"workflows":3,"other_ci":false,"readme_bytes":3718,"docs_files":1,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2026-09-09","last_commit":"2026-10-09","commits":6,"ci_status":"success","ci_run_at":"2026-10-21","ci_workflow":"release","ci_event":"push","readme_path":"packages/cap-agents-memory/README.md","readme_sha":"01aca46b759cacb73cad63f5ace33b4e53197977","months_since_release":1,"dormant":false,"dependencies":2,"node_engine":null,"downloads_monthly":38,"created_at":"2026-07-08T05:15:34Z","open_prs":1,"repo_read":"2026-10-25"},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"repo","path":"packages/cap-agents-memory/CHANGELOG.md","ref":"main","url":"https://github.com/mi8y/cap-agents-addons/blob/main/packages/cap-agents-memory/CHANGELOG.md"},"format":"changesets","releases":[{"version":"0.2.0","date":"2026-09-17","date_source":"registry","heading":"0.2.0","url":"https://github.com/mi8y/cap-agents-addons/blob/main/packages/cap-agents-memory/CHANGELOG.md#020","sections":[{"kind":"feature","heading":"Minor Changes","items":1}],"hash":"ef56d86f09f8811f"}],"versions":[{"version":"0.2.0","date":"2026-09-17"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:anselm94","name":"Merbin J Anselm","json":"/actors/anselm94.json"},{"ref":"actor:mi8y","name":"Mi8Y Technologies","json":"/actors/mi8y.json"}],"contributors":[{"ref":"actor:anselm94","name":"Merbin J Anselm","json":"/actors/anselm94.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}