Skip to main content

GLLM Memory

Description

Memory layer for AI agents. The public API is MemoryManager. You can use it in two ways:

  1. HTTP mode: use api_key and optional host
  2. SDK mode: use MemoryManagerConfig and pass config=...

In SDK mode, you can register your own LLM, embedding model, memory store, and optional reranker without exposing backend-specific config to application code.

TL;DR / 30-Second Example

Fastest HTTP mode example:

from gllm_inference.schema.message import Message
from gllm_memory import MemoryManager
from gllm_memory.enums import MemoryScope

memory_manager = MemoryManager(api_key="your_mem0_api_key")

await memory_manager.add(
    user_id="user_123",
    agent_id="agent_456",
    messages=[Message.user("I love pizza")],
    scopes={MemoryScope.USER},
)

results = await memory_manager.search(
    query="What does the user like?",
    user_id="user_123",
    scopes={MemoryScope.USER},
)

For the recommended SDK mode setup with MemoryManagerConfig, see SDK Mode.

Installation & Setup

Requirements

  1. Python 3.11+ — Install here
  2. pip or uv — pip, uv
  3. gcloud CLI — Install here
  4. Git — only needed for local development from a cloned repository

Authentication

Use this once when you need internal packages or local development setup:

gcloud auth login
export UV_INDEX_GEN_AI_INTERNAL_USERNAME=oauth2accesstoken
export UV_INDEX_GEN_AI_INTERNAL_PASSWORD="$(gcloud auth print-access-token)"
export UV_INDEX_GEN_AI_USERNAME=oauth2accesstoken
export UV_INDEX_GEN_AI_PASSWORD="$(gcloud auth print-access-token)"

Install from Artifact Registry

uv pip install \
  --extra-index-url "https://oauth2accesstoken:$(gcloud auth print-access-token)@glsdk.gdplabs.id/gen-ai-internal/simple/" \
  gllm-memory

Install from Local Clone

git clone git@github.com:GDP-ADMIN/gl-sdk.git
cd gl-sdk/libs/gllm-memory
pip install -e .

For the full local development setup with project tooling:

make setup
source .venv/bin/activate

Runtime Notes

  1. HTTP mode uses MEM0_API_KEY and optional MEM0_HOST.
  2. SDK mode uses MemoryManagerConfig(...) and lets your app register LM, embedding, memory store, and optional retrieval reranker.

Optional Dependencies

  1. OpenAI-based SDK examples require OpenAI support from gllm-inference, for example gllm-inference[openai].
  2. Knowledge graph examples require the KG dependencies used by this repository setup.

Typical environment variables:

Variable Role
MEM0_API_KEY Required for the HTTP client when not passed in code.
MEM0_HOST Optional; base URL for self-hosted Mem0 API.
MEMORY_PROVIDER Optional; default is Mem0 (mem0).
MEMORY_RETENTION_ENABLED Optional; enables vector-memory and persistent Mem0 SQLite history retention (default false).
MEMORY_DEDUP_ENABLED Optional; enables semantic dedupe on the retention schedule (default false).
MEMORY_DEDUP_SIMILARITY_THRESHOLD Optional; embedding similarity threshold for dedupe (default 0.65).
MEMORY_RETENTION_CRON_DAY Optional; retention and enabled-dedupe schedule day (default sat).
MEMORY_RETENTION_CRON_HOUR Optional; retention and enabled-dedupe hour in server-local time (default 1).
MEMORY_RETENTION_CRON_MINUTE Optional; retention and enabled-dedupe minute in server-local time (default 0).
MEMORY_RETENTION_DAYS Optional; shared vector-memory and SQLite history age in days (default 90).
MEMORY_DEDUP_LOOKBACK_DAYS Optional; recent-window scan using created_at OR updated_at (default 7).
MEMORY_DEDUP_MAX_CANDIDATES_PER_ANCHOR Optional; per-anchor semantic search cap (default 100).
MEMORY_DEDUP_MAX_TARGET_MEMORIES Optional; per-partition safeguard before the job skips a large target (default 5000).
TIMEOUT_SEC Optional; request timeout in seconds (default 30). Used when building clients from env.

Do not commit secrets to git.

Semantic Memory Dedupe

gllm-memory includes one internal background maintenance job for retrieval-based vector retention, semantic dedupe, and persistent Mem0 SQLite audit-history retention.

You do not call this job directly from MemoryManager. When memory maintenance is enabled, the scheduler is registered automatically during MemoryManager initialization.

What it does:

  1. scans recent memories from the configured vector store
  2. groups candidates inside one partition: scope + user_id + agent_id + source + target
  3. finds semantically similar memories using embedding similarity
  4. keeps one canonical memory and removes duplicate rows when it is safe
  5. hard-deletes non-important vector memories that have not been retrieved for MEMORY_RETENTION_DAYS
  6. removes persistent Mem0 SQLite audit-history events older than MEMORY_RETENTION_DAYS

Safety rules in the current implementation:

  1. is_important=True memories are never deleted
  2. canonical priority is: important > newer > richer content > older
  3. if compatible memories are in the same context, the canonical memory can be updated with merged content before duplicate rows are deleted
  4. if custom metadata conflicts, that duplicate group is skipped
  5. deletion is hard delete from the vector store

Current behavior:

  1. the first version uses embedding-only comparison
  2. retention runs only when MEMORY_RETENTION_ENABLED=true; semantic dedupe runs only when MEMORY_DEDUP_ENABLED=true
  3. the default schedule is Saturday at 01:00
  4. the timezone follows the server-local timezone where gllm-memory runs
  5. the default lookback window is the last 7 days using created_at OR updated_at
  6. the default large-partition safeguard is MEMORY_DEDUP_MAX_TARGET_MEMORIES=5000
  7. the in-process registry prevents duplicate local schedulers and Elasticsearch lease ownership permits one active run per vector-store target across pods
  8. the current full-store scanner implementation is available for Elasticsearch-backed vector stores
  9. SQLite history retention runs only for persistent SDK history_db_path; it skips in-memory history and does not automatically run VACUUM

Architecture

The system follows a layered architecture below:

┌──────────────────────────────────────────────────────────────┐
│                    Application Layer                         │
├──────────────────────────────────────────────────────────────┤
│                    Memory Manager                            │
├──────────────────────────────────────────────────────────────┤
│                    Memory Client (Base)                      │
├──────────────────────────────────────────────────────────────┤
│                    Provider Layer (Mem0)                     │
├──────────────────────────────────────────────────────────────┤
│                    Mem0 Platform (HTTP client or Python SDK) │
└──────────────────────────────────────────────────────────────┘

🧩 SDK Mode With MemoryManagerConfig

Use this mode if you want to:

  1. register memory LLM and embedding invoker runtimes
  2. configure an optional reranker
  3. keep application code independent from backend-specific config shape

gllm-memory does not create provider-specific LM or embedding invokers for you in normal SDK usage. Your application builds the LM invoker, optional fallback invokers, one embedding invoker, and then wraps the memory LLM path with the library-owned MemoryLMComponent.

SDK Mode Example

Recommended LLM registration:

from gllm_inference.lm_invoker.lm_invoker import BaseLMInvoker
from gllm_inference.lm_invoker.openai_lm_invoker import OpenAILMInvoker
from gllm_memory import MemoryLMComponent, MemoryManagerConfig


def build_openai_lm_invoker(model_name: str) -> OpenAILMInvoker:
    return OpenAILMInvoker(
        model_name=model_name,
        api_key="your_openai_api_key",
    )


def build_fallback_lm_invokers() -> list[BaseLMInvoker]:
    return [
        build_openai_lm_invoker("gpt-4o-mini"),
    ]


def build_lm_component() -> MemoryLMComponent:
    return MemoryLMComponent(
        lm_invoker=build_openai_lm_invoker("gpt-5-nano"),
        fallback_lms=build_fallback_lm_invokers() or None,
    )


def build_em_invoker():
    from gllm_inference.em_invoker.openai_em_invoker import OpenAIEMInvoker

    return OpenAIEMInvoker(
        model_name="text-embedding-3-small",
        api_key="your_openai_api_key",
    )


lm_component = build_lm_component()
em_invoker = build_em_invoker()

config = (
    MemoryManagerConfig.builder()
    .memory_store.elasticsearch(
        host="localhost",
        port=9200,
        collection_name="memories",
        embedding_model_dims=1536,
    )
    .embedding.register(
        em_invoker,
        embedding_dims=1536,
    )
    .llm.register_component(lm_component)
    .reranker.similarity_based(
        em_invoker,
        top_k=5,
    )
    .build()
)

In this path, em_invoker and the underlying LM invokers are created by your application, while MemoryLMComponent is owned by gllm-memory. MemoryManager.instruction remains the source of truth for memory extraction instructions, and lm_component can route from one primary LM to fallback_lms when the primary LM fails.

The reranker is optional. If you do not need retrieval reranking, omit .reranker.similarity_based(...) from the builder. When configured with similarity_based(...), reranking runs in the external retrieval layer after provider retrieval returns chunks. The provider keeps native backend rerank disabled for this path so the request does not run double reranking. If your installed gllm_inference version still has a circular import on OpenAIEMInvoker, instantiate the EM invoker with a local lazy import like the example above.

SDK Mode With Default Config

If you want to use the default SDK setup, you can build an empty config:

from gllm_memory import MemoryManager, MemoryManagerConfig

config = MemoryManagerConfig.builder().build()
memory_manager = MemoryManager(config=config)

Default SDK behavior:

  1. memory store uses Elasticsearch
  2. embedding uses gllm-inference: EM Invoker with OpenAI defaults
  3. llm uses gllm-inference OpenAI defaults
  4. reranker is omitted unless configured explicitly

Required environment variables for the default SDK config:

  1. ELASTICSEARCH_HOST
  2. ELASTICSEARCH_PORT
  3. ELASTICSEARCH_COLLECTION_NAME
  4. ELASTICSEARCH_EMBEDDING_MODEL_DIMS
  5. OPENAI_API_KEY

Optional environment variables:

  1. ELASTICSEARCH_USER
  2. ELASTICSEARCH_PASSWORD
  3. OPENAI_BASE_URL
  4. OPENAI_MODEL_NAME (default SDK LLM model override)
  5. OPENAI_EMBEDDING_MODEL (used by examples/example_mem0_sdk_client.py)
  6. MEMORY_RETENTION_ENABLED (default false)
  7. MEMORY_RETENTION_CRON_DAY (default sat)
  8. MEMORY_RETENTION_CRON_HOUR (default 1)
  9. MEMORY_RETENTION_CRON_MINUTE (default 0)
  10. MEMORY_RETENTION_DAYS (default 90)
  11. MEMORY_DEDUP_ENABLED (default false)
  12. MEMORY_DEDUP_SIMILARITY_THRESHOLD (default 0.65)

Elasticsearch transport safety:

  1. A host that already includes http:// or https:// keeps that scheme.
  2. A hostname-only config that omits use_ssl uses the SDK default, which is HTTP.
  3. For a hostname-only HTTPS deployment, set use_ssl=True explicitly in the Elasticsearch memory-store config.

🌐 HTTP Mode

Use this mode if you want to connect to the HTTP API directly. Point the client at your own server:

from gllm_memory import MemoryManager

manager = MemoryManager(
    api_key="your-api-key",
    host="https://your-mem0-server.com",
)

If you want local SDK mode, use MemoryManager(config=...) instead of api_key and host.

HTTP Mode Example

from gllm_inference.schema.message import Message
from gllm_memory import MemoryManager
from gllm_memory.enums import MemoryScope

memory_manager = MemoryManager(api_key="...", host="...")  # host optional

messages = [
    Message.user("I love pizza"),
    Message.assistant("Noted."),
]
await memory_manager.add(
    user_id="user_123",
    agent_id="agent_456",
    messages=messages,
    scopes={MemoryScope.USER},
    metadata={"conversation_id": "chat_001"},  # Optional
    infer=True,  # Optional, defaults to True
    is_important=False,  # Optional, defaults to False
)

memories = await memory_manager.search(
    query="What does the user like?",
    user_id="user_123",
    scopes={MemoryScope.USER},
    metadata=None,  # Optional
    threshold=0.3,  # Optional, defaults to 0.3
    top_k=10,  # Optional, defaults to 10
    include_important=False,  # Optional, defaults to False
    rerank=False,  # Optional, defaults to False; if True, applies re-ranking to results
)

🕸️ Knowledge Graph in GLLM Memory

gllm-memory can optionally use a Knowledge Graph (KG) so one search flow can combine:

  1. normal memory retrieval
  2. graph-based facts such as people, companies, places, and relationships

Enable it with the same public API:

memory_manager = MemoryManager(config=config)

Recommended setup:

from gllm_inference.lm_invoker.openai_lm_invoker import OpenAILMInvoker
from gllm_memory import MemoryManager, MemoryManagerConfig, Neo4jGraphStoreConfig

memory_lm_component = build_lm_component()
em_invoker = build_em_invoker()

kg_lm_invoker = OpenAILMInvoker(
    model_name="gpt-4o-mini",
    api_key="your_openai_api_key",
)

config = (
    MemoryManagerConfig.builder()
    .memory_store.elasticsearch(
        host="localhost",
        port=9200,
        collection_name="memories",
        embedding_model_dims=1536,
    )
    .embedding.register(
        em_invoker,
        embedding_dims=1536,
    )
    .llm.register_component(memory_lm_component)
    .knowledge_graph.enable(
        lm_invoker=kg_lm_invoker,
        graph_store=Neo4jGraphStoreConfig(
            uri="bolt://localhost:7687",
            user="neo4j",
            password="password",
        ),
    )
    .build()
)

memory_manager = MemoryManager(config=config)

MemoryManager enables KG automatically when the config contains a knowledge_graph section.

Detailed KG flows, storage isolation, update behavior, and delete behavior are documented in docs/knowledge-graph.md.

Core API methods

MemoryManager exposes async methods; query is required where noted.

Usage examples:

  1. SDK mode example: see SDK Mode With MemoryManagerConfig
  2. HTTP mode example: see 🌐 HTTP Mode

Methods

  • add(user_id, agent_id, messages, scopes, metadata, infer, is_important) -> list[Chunk] - Add new memories from message objects.
  • search(query, user_id, agent_id, scopes, metadata, threshold, top_k, include_important, rerank) -> list[Chunk] - Search and retrieve memories by query.
  • list_memories(user_id, agent_id, scopes, metadata, keywords, page, page_size) -> list[Chunk] - Get memories with pagination and optional keyword filtering.
  • update(memory_id, new_content, metadata, user_id, agent_id, scopes, is_important) -> Chunk | None - Update one existing memory by ID.
  • delete(memory_ids, user_id, agent_id, scopes, metadata) -> list[Chunk] - Delete memories by IDs or by user or agent identifiers. When KG is enabled, the related KG contribution is also cleaned up.
  • delete_by_user_query(query, user_id, agent_id, scopes, metadata, threshold, top_k) -> list[Chunk] - Delete memories by query. When KG is enabled, the related KG contribution is also cleaned up.

🔧 Code Quality

# Format code with ruff
ruff format gllm_memory/ tests/

# Check code quality
ruff check gllm_memory/ tests/

# Fix auto-fixable issues
ruff check gllm_memory/ tests/ --fix

Local Development Utilities

The following Makefile commands are available for quick operations:

Install uv

make install-uv

Install Pre-Commit

make install-pre-commit

Install Dependencies

make install

Update Dependencies

make update

Run Tests

make test

Contributing

Please refer to the Python Style Guide for information about code style, documentation standards, and SCA requirements.

Contributing Steps

  1. Fork and clone the repository

  2. Set up development environment:

    # Complete setup: installs uv, configures auth, installs packages, sets up pre-commit
    make setup
    
  3. Activate virtual environment:

    source .venv/bin/activate
    
  4. Run tests to ensure everything works:

    make test
    
  5. Make your changes and ensure tests pass:

    # Make your changes
    # Ensure tests pass
    make test
    
  6. Submit a pull request:

    # Submit a pull request
    git push origin your-branch
    

Metadata

Release files for gllm-memory-binary 0.3.5

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

Built distributions (wheels)

Table of built distributions (wheels) for gllm-memory-binary 0.3.5
File
gllm_memory_binary-0.3.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
gllm_memory_binary-0.3.5-cp313-cp313-manylinux_2_31_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.31+ x86-64 Details
gllm_memory_binary-0.3.5-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
gllm_memory_binary-0.3.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
gllm_memory_binary-0.3.5-cp312-cp312-manylinux_2_31_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.31+ x86-64 Details
gllm_memory_binary-0.3.5-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
gllm_memory_binary-0.3.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gllm_memory_binary-0.3.5-cp311-cp311-manylinux_2_31_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.31+ x86-64 Details
gllm_memory_binary-0.3.5-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details

Total release size: 20.5 MB

Release files / gllm_memory_binary-0.3.5-cp313-cp313-win_amd64.whl

Download URL gllm_memory_binary-0.3.5-cp313-cp313-win_amd64.whl
Size 1.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d3729445789a7979f04a5af16b38aa29d74f3604fe349b9cc02890a61082cfbe
BLAKE2b-256 checksum
How to use checksums
dbbf4ad91bb9dbb40183abe28af0fad3ad67ea55e1460184cac745a77e0b49e7
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 Oct 7, 2026.

Transparency log

Release files / gllm_memory_binary-0.3.5-cp313-cp313-manylinux_2_31_x86_64.whl

Download URL gllm_memory_binary-0.3.5-cp313-cp313-manylinux_2_31_x86_64.whl
Size 2.8 MB
Tags CPython 3.13 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
e284e11bbfbf98e57c1b5f1f0d5d77ebacc74c468fa69585efffb3ee79f37dde
BLAKE2b-256 checksum
How to use checksums
0881a09c6c17ddc6ab2517be540a4fadc07956174cbdf1873b66882f98434975
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.24

Release files / gllm_memory_binary-0.3.5-cp313-cp313-macosx_13_0_arm64.whl

Download URL gllm_memory_binary-0.3.5-cp313-cp313-macosx_13_0_arm64.whl
Size 2.3 MB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
b56d03ce01fe0b6973bcde4f2a0c8c509a2715414cb2774b5f9044ace8ece019
BLAKE2b-256 checksum
How to use checksums
f7c33d8ba647b66bf6b274f5b87bffe02af0cbf6a90dbb35e9f07f63f7fd7cdf
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 Oct 7, 2026.

Transparency log

Release files / gllm_memory_binary-0.3.5-cp312-cp312-win_amd64.whl

Download URL gllm_memory_binary-0.3.5-cp312-cp312-win_amd64.whl
Size 1.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
931e9f22337ed717ad3075470e335890659074d365724dbc3865591f8802e111
BLAKE2b-256 checksum
How to use checksums
bad6bc6c8d1f6484c094c9445abb763569028fafb329a60e5cb56e1c85a94b02
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 Oct 7, 2026.

Transparency log

Release files / gllm_memory_binary-0.3.5-cp312-cp312-manylinux_2_31_x86_64.whl

Download URL gllm_memory_binary-0.3.5-cp312-cp312-manylinux_2_31_x86_64.whl
Size 2.8 MB
Tags CPython 3.12 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
fb9bbb9454b88ba54530eb32ad6237d50d67a1de52e4e1ecddc69bf26f69a400
BLAKE2b-256 checksum
How to use checksums
d66424d5a230b6b8a510d80ec8e49484c1ce37bb27d418ed80c0bf7c4af5a701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.24

Release files / gllm_memory_binary-0.3.5-cp312-cp312-macosx_13_0_arm64.whl

Download URL gllm_memory_binary-0.3.5-cp312-cp312-macosx_13_0_arm64.whl
Size 2.2 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
57bc5ac2c3efd1f305175d14f3c68dc3d2c9a79f88a482f3e19082e9dcda006e
BLAKE2b-256 checksum
How to use checksums
e644ba1c975692d2fdc08d544c22dc89a087a101c460968b05a0b56a2ddbf218
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 Oct 7, 2026.

Transparency log

Release files / gllm_memory_binary-0.3.5-cp311-cp311-win_amd64.whl

Download URL gllm_memory_binary-0.3.5-cp311-cp311-win_amd64.whl
Size 1.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
946c29cbb113f53dfa35b8917ecae9d8faca4fc1b791fdb50fd119127c7d4e42
BLAKE2b-256 checksum
How to use checksums
85c6bb30fb62e7281ac16bd9244701aa5b03f878d3d3a987ec6173b26b6f5cce
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 Oct 7, 2026.

Transparency log

Release files / gllm_memory_binary-0.3.5-cp311-cp311-manylinux_2_31_x86_64.whl

Download URL gllm_memory_binary-0.3.5-cp311-cp311-manylinux_2_31_x86_64.whl
Size 2.5 MB
Tags CPython 3.11 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
6b22bab2742567e66c014e5eaeaeb8742b0c63c06fdefc5ea90665e08443111f
BLAKE2b-256 checksum
How to use checksums
de57689861e05532aee448317054814bdbc30de583e01c68210abf3c861043ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.24

Release files / gllm_memory_binary-0.3.5-cp311-cp311-macosx_13_0_arm64.whl

Download URL gllm_memory_binary-0.3.5-cp311-cp311-macosx_13_0_arm64.whl
Size 2.2 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
a77c739284e598e6cc263dd533e32a7c0eafeda153a9994e3b05d7174b310d79
BLAKE2b-256 checksum
How to use checksums
f86152ee4a38bafd999f5a89699850016f7cfaf9fc761fd8916fc97675cb7eb0
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 Oct 7, 2026.

Transparency log
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