Skip to main content

citadeldb-ms-agent-framework

Microsoft Agent Framework storage backed by Citadel. Encrypted at rest, embedded in your process, and deletes that destroy the key, not just the row.

pip install citadeldb-ms-agent-framework

Requires citadeldb>=2.2,<3 and agent-framework-core>=1.13,<2.

The package provides two storage interfaces:

Class Implements Use when
CitadelHistoryProvider HistoryProvider a session must recover its complete transcript
CitadelContextProvider ContextProvider an agent should recall relevant facts across sessions

The context provider performs semantic recall. This example uses local e5-large; CandleEmbedder requires the Candle source build and model setup, while the default wheel accepts a bring-your-own semantic embedder.

from agent_framework import Agent
import citadeldb
from citadeldb_ms_agent_framework import CitadelContextProvider, CitadelHistoryProvider

embedder = citadeldb.CandleEmbedder("/path/to/e5-large", preset="e5-large")

agent = Agent(
    client=chat_client,  # any agent_framework chat client
    context_providers=[
        CitadelHistoryProvider("agent.cdl", key="your-passphrase", embedder=embedder),
        CitadelContextProvider(
            "agent.cdl", key="your-passphrase", scope="user-123", embedder=embedder
        ),
    ],
)

Both can share one encrypted file: a path already open on this thread, under the same passphrase, is shared. Construct them on the same thread.

Deletes destroy the key

history = CitadelHistoryProvider("agent.cdl", key="your-passphrase", embedder=embedder)
memory = CitadelContextProvider(
    "agent.cdl", key="your-passphrase", scope="user-123", embedder=embedder
)

await history.forget("session-42")  # returns the number erased
await memory.forget()  # this provider's whole scope

Clearing a conversation destroys each message's own key and deletes its row. Pre-erasure backups or snapshots containing keys, and exported plaintext, are outside that erasure.

History provider

Implements get_messages and save_messages. Set load_messages=False to store messages without loading history before a run:

CitadelHistoryProvider(
    "agent.cdl",
    key="your-passphrase",
    embedder=embedder,
    load_messages=False,
)  # stores, never loads

Messages round-trip through the framework's own serialization, so roles, author names, multi-part contents and additional_properties all survive.

Context provider

Uses Citadel's hybrid recall. embedder= is required.

memory = CitadelContextProvider(
    "agent.cdl", key="your-passphrase", scope="user-123", limit=5, embedder=embedder
)

Memories are scoped rather than session-bound, so a later conversation can recall an earlier one. scope is the boundary an erasure request applies to.

Custom embedders expose dim, metric, model_id, and embed_with_cancel(texts, cancel_token). Accept None as the token; otherwise poll cancel_token.check() between bounded batches. Asymmetric models may also provide embed_queries_with_cancel.

License

Apache-2.0

Release files for citadeldb-ms-agent-framework 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for citadeldb-ms-agent-framework 2.6.0
File Size Uploaded
citadeldb_ms_agent_framework-2.6.0.tar.gz 11.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for citadeldb-ms-agent-framework 2.6.0
File Interpreter ABI Platform
citadeldb_ms_agent_framework-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.6 kB

Release files / citadeldb_ms_agent_framework-2.6.0.tar.gz

Download URL citadeldb_ms_agent_framework-2.6.0.tar.gz
Size 11.2 kB
Tags Source
SHA-256 checksum
How to use checksums
62063655adbdb3399af8b5dbe6d9e39a966624096662f1b97b5cdd7d818636e4
BLAKE2b-256 checksum
How to use checksums
91bf69daecdae4d257708f77e1c31e763599b3a09542b53c957d2d6a758de875
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / citadeldb_ms_agent_framework-2.6.0-py3-none-any.whl

Download URL citadeldb_ms_agent_framework-2.6.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03e09f1be3693c7127f8b44094c285cc50dd4f8dd2cedb8793373ce86b6d151f
BLAKE2b-256 checksum
How to use checksums
286fb9961410a8cf73eb55f2fa4d8cc911fd88fa1b07e1721fab5a806edda704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

2.6.1

2 release files

This release

2.6.0 This release

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page