Metadata-Version: 2.4
Name: memorizz
Version: 0.10.0
Summary: A memory management library and local agent CLI for Python
Project-URL: Homepage, https://github.com/RichmondAlake/memorizz
Project-URL: Documentation, https://richmondalake.github.io/memorizz
Project-URL: Repository, https://github.com/RichmondAlake/memorizz
Project-URL: Changelog, https://github.com/RichmondAlake/memorizz/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/RichmondAlake/memorizz/issues
Author-email: Richmond Alake <richmond.alake@gmail.com>
License-Expression: PolyForm-Noncommercial-1.0.0
License-File: LICENSE
License-File: NOTICE
Keywords: agent-memory,agents,ai,anthropic,cli,llm,long-term-memory,memory,ollama,openai,rag
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: numpy
Requires-Dist: ollama>=0.6.0
Requires-Dist: openai
Requires-Dist: packaging>=23.2
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=0.19.0
Requires-Dist: requests>=2.31.0
Requires-Dist: rich>=13.7.0
Requires-Dist: typer>=0.12.0
Requires-Dist: tzdata>=2024.1; sys_platform == 'win32'
Provides-Extra: all
Requires-Dist: accelerate>=1.0.0; extra == 'all'
Requires-Dist: anthropic>=0.26.0; extra == 'all'
Requires-Dist: cryptography>=42.0.0; extra == 'all'
Requires-Dist: daytona>=1.0; extra == 'all'
Requires-Dist: e2b-code-interpreter<2.10.0,>=2.9.0; extra == 'all'
Requires-Dist: e2b<2.38.0,>=2.26.0; extra == 'all'
Requires-Dist: faiss-cpu>=1.7.4; extra == 'all'
Requires-Dist: fastapi>=0.104.0; extra == 'all'
Requires-Dist: huggingface-hub>=1.0.0; extra == 'all'
Requires-Dist: jinja2>=3.1.0; extra == 'all'
Requires-Dist: mcp<3.0.0,>=2.0.0; extra == 'all'
Requires-Dist: mlx-lm>=0.20.0; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'all'
Requires-Dist: mlx>=0.18.0; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'all'
Requires-Dist: numpy<2,>=1.21; extra == 'all'
Requires-Dist: ollama>=0.6.0; extra == 'all'
Requires-Dist: oracledb>=2.0.0; extra == 'all'
Requires-Dist: pymongo>=4.0.0; extra == 'all'
Requires-Dist: pypdf>=4.0.0; extra == 'all'
Requires-Dist: python-multipart>=0.0.6; extra == 'all'
Requires-Dist: sentence-transformers>=5.0.0; extra == 'all'
Requires-Dist: transformers>=5.5.0; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.24.0; extra == 'all'
Requires-Dist: voyageai; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.26.0; extra == 'anthropic'
Provides-Extra: cli
Provides-Extra: dev
Requires-Dist: anthropic>=0.26.0; extra == 'dev'
Requires-Dist: black==23.12.1; extra == 'dev'
Requires-Dist: flake8>=6.0; extra == 'dev'
Requires-Dist: httpx>=0.24; extra == 'dev'
Requires-Dist: isort>=5.12; extra == 'dev'
Requires-Dist: mongomock>=4.1; extra == 'dev'
Requires-Dist: oracledb>=2.0.0; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pymongo>=4.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-timeout>=2.1; extra == 'dev'
Requires-Dist: pytest-xdist>=3.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.0; extra == 'docs'
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
Provides-Extra: filesystem
Requires-Dist: faiss-cpu>=1.7.4; extra == 'filesystem'
Provides-Extra: huggingface
Requires-Dist: accelerate>=1.0.0; extra == 'huggingface'
Requires-Dist: huggingface-hub>=1.0.0; extra == 'huggingface'
Requires-Dist: numpy<2,>=1.21; extra == 'huggingface'
Requires-Dist: sentence-transformers>=5.0.0; extra == 'huggingface'
Requires-Dist: transformers>=5.5.0; extra == 'huggingface'
Provides-Extra: ingest-pdf
Requires-Dist: pypdf>=4.0.0; extra == 'ingest-pdf'
Provides-Extra: local
Requires-Dist: faiss-cpu>=1.7.4; extra == 'local'
Requires-Dist: ollama>=0.6.0; extra == 'local'
Provides-Extra: longmemeval-v2
Requires-Dist: pillow>=10.0.0; extra == 'longmemeval-v2'
Requires-Dist: torch>=2.2.0; extra == 'longmemeval-v2'
Requires-Dist: torchvision>=0.17.0; extra == 'longmemeval-v2'
Requires-Dist: tqdm>=4.66.0; extra == 'longmemeval-v2'
Requires-Dist: transformers>=4.57.0; extra == 'longmemeval-v2'
Provides-Extra: mcp
Requires-Dist: cryptography>=42.0.0; extra == 'mcp'
Requires-Dist: mcp<3.0.0,>=2.0.0; extra == 'mcp'
Requires-Dist: uvicorn>=0.24.0; extra == 'mcp'
Provides-Extra: membench-eval
Requires-Dist: tiktoken>=0.7.0; extra == 'membench-eval'
Provides-Extra: mlx
Requires-Dist: mlx-lm>=0.20.0; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'mlx'
Requires-Dist: mlx>=0.18.0; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'mlx'
Provides-Extra: mongodb
Requires-Dist: pymongo>=4.0.0; extra == 'mongodb'
Provides-Extra: notebooks
Requires-Dist: ipykernel>=6.0.0; extra == 'notebooks'
Requires-Dist: jupyterlab>=4.0.0; extra == 'notebooks'
Requires-Dist: nbconvert>=7.0.0; extra == 'notebooks'
Provides-Extra: ollama
Requires-Dist: ollama>=0.6.0; extra == 'ollama'
Provides-Extra: oracle
Requires-Dist: oracledb>=2.0.0; extra == 'oracle'
Provides-Extra: sandbox
Requires-Dist: e2b-code-interpreter<2.10.0,>=2.9.0; extra == 'sandbox'
Requires-Dist: e2b<2.38.0,>=2.26.0; extra == 'sandbox'
Provides-Extra: sandbox-daytona
Requires-Dist: daytona>=1.0; extra == 'sandbox-daytona'
Provides-Extra: sandbox-e2b
Requires-Dist: e2b-code-interpreter<2.10.0,>=2.9.0; extra == 'sandbox-e2b'
Requires-Dist: e2b<2.38.0,>=2.26.0; extra == 'sandbox-e2b'
Provides-Extra: swe-bench
Requires-Dist: datasets>=3.0.0; extra == 'swe-bench'
Requires-Dist: docker>=7.0.0; extra == 'swe-bench'
Requires-Dist: swebench<6.0.0,>=5.0.2; extra == 'swe-bench'
Provides-Extra: terminal-bench
Requires-Dist: harbor<0.22.0,>=0.21.0; extra == 'terminal-bench'
Provides-Extra: ui
Requires-Dist: fastapi>=0.104.0; extra == 'ui'
Requires-Dist: jinja2>=3.1.0; extra == 'ui'
Requires-Dist: python-multipart>=0.0.6; extra == 'ui'
Requires-Dist: uvicorn[standard]>=0.24.0; extra == 'ui'
Provides-Extra: voyageai
Requires-Dist: voyageai; extra == 'voyageai'
Description-Content-Type: text/markdown

# Memorizz

**The intelligence plane for memory-first agents.**

Memorizz is a Python framework that connects persistent memory, models, prompts,
and reasoning so agents can recall what matters, reuse experience, and make
better decisions across sessions.

[Documentation](https://richmondalake.github.io/memorizz/) ·
[PyPI](https://pypi.org/project/memorizz/) ·
[Examples](examples/zero_to_hero/README.md) ·
[Changelog](CHANGELOG.md)

## Memory management

Memory is the foundation: retain information, retrieve relevant context, and
refine what an agent knows over time.

| Memory | What it gives your agents |
|---|---|
| [Episodic](docs/memory-types/episodic.md) | Conversation history, past interactions, and summaries. |
| [Semantic](docs/memory-types/semantic.md) | Knowledge bases, entity facts, preferences, and personas. |
| [Procedural](docs/memory-types/procedural.md) | Registered tools, recorded workflows, and reusable skills. |
| [Short-term](docs/memory-types/short-term.md) | Working context and semantic caching. |
| [Shared](docs/memory-types/shared.md) | A shared workspace for agent coordination and handoffs. |

- **Persist and isolate:** scope memory by agent, user, and conversation. Start
  with local filesystem storage, or use MongoDB or Oracle through the same
  provider contract.
- **Ingest and retrieve:** turn files and folders into a knowledge base with
  configurable chunking, embeddings, and semantic or hybrid search.
- **Manage context:** deduplicate retrieved memories, summarize and compact
  history, inspect recall decisions, and control retention and forgetting.

Explore [memory concepts and scope](docs/getting-started/concepts.md),
[storage providers](docs/memory-providers/filesystem.md), and
[context efficiency](docs/guides/context-efficiency.md).

## Agent framework

Build persistent agents with `MemAgent` and `MemAgentBuilder`. Choose
`assistant`, `workflow`, or `deep_research` modes and connect cloud or local
[model providers](docs/getting-started/model-providers.md).

- **Tools and integrations:** Python functions, MCP servers, internet search,
  governed browser control, sandboxes, and external skills.
- **Coordination:** delegate work to specialist agents, share memory, and run
  scheduled automations.
- **Interfaces:** use the Python SDK, interactive CLI, local web UI, or expose
  Memorizz as an MCP server.

Start with the [SDK quickstart](docs/getting-started/python-sdk-quickstart.md)
or the [CLI guide](docs/getting-started/cli.md).

## Harness

`MetaHarness` runs tasks through Codex, Claude Code, OpenHands, or native
MemAgent workers. It carries memory scope and learning evidence across
harnesses while managing permissions, approvals, workspace isolation, budgets,
cancellation, and host-side verification.

Use an external harness for an entire task or let a MemAgent call one as a
specialist tool. Inspect installed adapters with `memorizz harness doctor`.

See the [MetaHarness guide](docs/guides/meta-harness.md) and
[hands-on examples](examples/metaharness/README.md).

## Continual learning and the intelligence plane

The **intelligence plane** is the model layer and everything that helps it
think: the LLM, prompts, reasoning strategies such as planning, reflection, and
tool selection, plus the memory and retrieval that supply context. Its job is
**decision quality**. A bad plan or a hallucinated tool call is an intelligence
plane problem.

Memorizz makes memory the foundation of this plane. Its opt-in continual
learning loop captures tool workflows and their outcomes, distills repeated
successful procedures into reusable skills, retrieves relevant active skills,
and monitors their performance. Shadow evaluation and review support skill
activation; skills that stop working can be demoted.

The learning control plane adds traceable outcome evidence, bounded retrieval,
and reversible forgetting. Together, these capabilities help agents retain,
recall, reuse, and refine experience.

Read about [continual learning](docs/guides/continual-learning.md), the
[learning control plane](docs/guides/learning-control-plane.md), and
[evaluation methods](docs/evaluation-suite.md).

## Quick start

Requires Python 3.10+. Install and launch the CLI with a cloud model:

```bash
python -m pip install memorizz
export OPENAI_API_KEY="your-key"
memorizz
```

For a fully local setup, use [Ollama](docs/getting-started/cli.md#option-a-local-no-api-key-ollama).
The [installation guide](docs/getting-started/installation.md) covers `uv`,
`pipx`, npm, Homebrew, and optional integrations.

Build a memory-first agent in Python using the same environment:

```python
from memorizz import MemAgentBuilder

agent = (
    MemAgentBuilder()
    .with_instruction("Remember useful context and use it to help the user.")
    .with_llm_config({"provider": "openai", "model": "gpt-4o-mini"})
    .with_memory_ids("my-assistant")
    .build_and_save()
)

scope = {"memory_id": "my-assistant", "user_id": "alice", "thread_id": "intro"}
with agent.lifecycle(close_memory_provider=True):
    agent.run("I work on payments systems.", **scope)
    print(agent.run("What did I tell you about my work?", **scope))
```

Memory persists under `~/.memorizz/memory` by default. Save `agent.agent_id` to
[restore the agent later](docs/getting-started/python-sdk-quickstart.md#5-restore-it-later).

## Explore

- [Memory-first tutorials](examples/zero_to_hero/README.md)
- [MCP connectivity](docs/guides/mcp-connectivity.md) and [MCP server](docs/guides/mcp-server.md)
- [Automations](docs/guides/automations.md) and [multi-user applications](docs/guides/multi-tenant.md)
- [Observability](docs/observability-ui.md) and [evaluation suite](docs/evaluation-suite.md)
- [Usage, cost and memory analytics](docs/usage-analytics.md)
- [Account-owned persona evolution](docs/persona-evolution-hosts.md)
- [API reference](docs/reference/python-api.md), [configuration](docs/reference/configuration.md), and [troubleshooting](docs/troubleshooting.md)

## License

Source available under [PolyForm Noncommercial 1.0.0](LICENSE). See [NOTICE](NOTICE).
Memorizz is experimental: APIs may change and it has not undergone security
hardening for production workloads.
