Modular Reasoning Framework (MRF-Core)
A deterministic, operator-based reasoning engine for LLMs and autonomous agents.
MRF-Core provides a transparent, modular, reproducible reasoning substrate built from a small set of reusable operators:
- Transform
- Reflect
- Evaluate
- Rewrite
- Summarize
- Inspect
- Filter
MRF makes reasoning traceable, auditable, and deterministic—without requiring chain-of-thought exposure or hidden model internals.
Why MRF-Core Exists
Every agent framework today suffers from the same structural failures:
- No consistent reasoning sequence
- No deterministic backbone
- No visibility into intermediate states
- No enforceable phases or operator logic
MRF-Core solves this by introducing:
- Explicit operator-level reasoning
- Strict phase transition model
- Complete execution trace
- Deterministic, reproducible outputs
- Plug-and-play integration for ANY agent system
MRF is not an alignment system.
MRF is not a sandbox.
MRF is a reasoning substrate.
Features
Deterministic Reasoning Chains
- Operators execute in strict order.
- Output is repeatable.
Transparent Logs & History
MRF records:
- final text
- operator log
- phase trace
- structured history of every step
Simple, Extensible Operators
- Each operator is a small Python class registered via the Operator Registry.
Drop-In Presets
simple, reasoning, full_chain ready for production use.
Install
pip install mrf-core
Quick Start
from mrfcore.engine import MRFCoreEngine
from mrfcore.presets import get_preset
engine = MRFCoreEngine()
ops = get_preset("reasoning")
result = engine.run_chain(ops, "MRF-Core is a modular deterministic reasoning pipeline.")
print(result["text"])
print(result["log"])
print(result["phase"])
Example Output
[REFLECT] [TRANSFORM]
MRF-CORE IS A MODULAR DETERMINISTIC REASONING PIPELINE.
[EVAL CHARS=95 WORDS=14]
PHASE: rewrite
Running a Manual Operator Chain
from mrfcore.engine import MRFCoreEngine
engine = MRFCoreEngine()
ops = [
("transform", {}),
("reflect", {}),
("evaluate", {}),
("rewrite", {}),
]
result = engine.run_chain(ops, "Explain symbolic reasoning.")
print(result["text"])
print(result["history"])
Using Presets
MRF-Core includes preset chains:
- simple
- reasoning
- full_chain
from mrfcore.engine import MRFCoreEngine
from mrfcore.presets import get_preset
engine = MRFCoreEngine()
for name in ["simple", "reasoning", "full_chain"]:
ops = get_preset(name)
result = engine.run_chain(ops, "MRF-Core preset test")
print(f"=== {name.upper()} ===")
print(result["text"])
Operator Anatomy
Every operator:
- receives the current ReasoningState
- modifies state.text
- appends to state.log
- updates state.phase
- records an entry in state.history
Example:
@register_operator("reflect")
class ReflectOperator(Operator):
phase = ("transform", "reflect")
def run(self, state):
state.text = f"[REFLECT] {state.text}"
state.log.append("Reflect applied")
return state
Project Structure
mrfcore/
engine.py
registry.py
state.py
presets.py
exceptions.py
operators/
base.py
transform.py
reflect.py
evaluate.py
rewrite.py
summarize.py
inspect.py
filter.py
tests/
examples/
What MRF-Core Is Not
MRF-Core is NOT:
- an alignment system
- a safety guarantee
- a sandbox
- a replacement for secure execution layers
MRF-Core IS:
- a deterministic reasoning layer
- an operator execution engine
- an audit-friendly cognition scaffold
- a missing substrate for agent stability
Contributing
PRs welcome, especially new operators, presets, or diagnostics.
License
Apache 2.0 (see LICENSE file).
Copyright 2026
Ryan Sabouhi
Notice
This software contains original work developed as part of the
Modular Reasoning Framework (MRF-Core) by Ryan Sabouhi.
See the NOTICE file for attribution details.
Metadata
Release files for mrf-core 0.2.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mrf_core-0.2.8.tar.gz | 10.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mrf_core-0.2.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.2 kB
Release files / mrf_core-0.2.8.tar.gz
| Download URL | mrf_core-0.2.8.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ca255ee183e42f2daa6b1565515229c6a8ad4597a740cfd94e134f327c4cdd5
|
|
BLAKE2b-256 checksum How to use checksums |
eaafe53ba2e2214fd341ffaf95666ee8ed55408daa6fe0d82af3121124da22d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / mrf_core-0.2.8-py3-none-any.whl
| Download URL | mrf_core-0.2.8-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e9539c365c6148504228cf73e772ef7faa5ef8a7c74b4a4039031ca77f4f38a
|
|
BLAKE2b-256 checksum How to use checksums |
b65de4b012ddd4241547b06b2e08292ee07a6031688a2eab295a644ef4885078
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for mrf-core 0.2.8
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.