Skip to main content

Recursive Language Models Toolkit for processing unlimited context

Project description

RLM-Toolkit

Version CI PyPI Python License Tests Docs NIOKR Integrations

Recursive Language Models Toolkit โ€” A high-security LangChain alternative for processing unlimited context (10M+ tokens) using recursive LLM calls.

๐Ÿš€ Quick Start

pip install rlm-toolkit
from rlm_toolkit import RLM

# Simple usage with Ollama
rlm = RLM.from_ollama("llama3")
result = rlm.run(
    context=open("large_document.txt").read(),
    query="What are the key findings?"
)
print(result.answer)

โœจ Features

Feature Description
Infinite Context Process 10M+ tokens with O(1) memory
InfiniRetri ๐Ÿ†• Attention-based retrieval, 100% accuracy on 1M+ tokens
H-MEM ๐Ÿ†• 4-level hierarchical memory with LLM consolidation
Self-Evolving ๐Ÿ†• LLMs that improve through usage (R-Zero pattern)
Multi-Agent ๐Ÿ†• Decentralized P2P agents with Trust Zones
DSPy Optimization ๐Ÿ†• Automatic prompt optimization
Secure REPL CIRCLE-compliant sandboxed code execution
Multi-Provider 75 LLM providers (OpenAI, Anthropic, Google, Ollama, vLLM...)
Document Loaders 135+ sources (Slack, Jira, GitHub, S3, databases...)
Vector Stores 20+ stores (Pinecone, Chroma, Weaviate, pgvector...)
Embeddings 15+ providers (OpenAI, BGE, E5, Jina, Cohere...)
Cost Control Budget limits, cost tracking
Observability OpenTelemetry, Langfuse, LangSmith, W&B (12 backends)
Memory Systems Buffer, Episodic, Hierarchical (H-MEM)

๐Ÿ“‹ Full Integration Catalog โ€” 287+ production-ready integrations

๐Ÿ”ฅ InfiniRetri (NEW)

Attention-based infinite context retrieval โ€” 100% accuracy on Needle-In-a-Haystack up to 1M+ tokens.

from rlm_toolkit.retrieval import InfiniRetriever

# Retrieve from 1M+ token documents
retriever = InfiniRetriever("Qwen/Qwen2.5-0.5B-Instruct")
answer = retriever.retrieve(
    context=million_token_doc,
    question="What is the secret code?"
)

# Or use automatic routing in RLM
from rlm_toolkit import RLM, RLMConfig

config = RLMConfig(
    use_infiniretri=True,
    infiniretri_threshold=100_000,  # Auto-switch at 100K tokens
)
rlm = RLM.from_ollama("llama3", config=config)
result = rlm.run(huge_document, "Summarize")  # Automatically uses InfiniRetri

Based on arXiv:2502.12962 โ€” requires pip install infini-retri

๐Ÿง  Hierarchical Memory (H-MEM) (NEW)

Multi-level persistent memory with semantic consolidation โ€” memories that learn and evolve.

from rlm_toolkit.memory import HierarchicalMemory, SecureHierarchicalMemory

# Basic H-MEM
hmem = HierarchicalMemory()
hmem.add_episode("User asked about weather")
hmem.add_episode("AI responded with forecast")
hmem.consolidate()  # Auto-creates traces, categories, domains

results = hmem.retrieve("weather")

# Secure H-MEM with encryption and trust zones
smem = SecureHierarchicalMemory(
    agent_id="agent-001",
    trust_zone="zone-secure"
)
smem.add_episode("Confidential data")
smem.grant_access("agent-002", "zone-secure")

4-Level Architecture:

Level 3: DOMAIN    โ†’ High-level knowledge
Level 2: CATEGORY  โ†’ Semantic categories  
Level 1: TRACE     โ†’ Consolidated memories
Level 0: EPISODE   โ†’ Raw interactions

Based on arXiv H-MEM paper (July 2025)

๐Ÿงฌ Self-Evolving LLMs (NEW)

LLMs that improve reasoning through usage โ€” no human supervision required.

from rlm_toolkit.evolve import SelfEvolvingRLM, EvolutionStrategy
from rlm_toolkit.providers import OllamaProvider

# Create self-evolving RLM
evolve = SelfEvolvingRLM(
    provider=OllamaProvider("llama3"),
    strategy=EvolutionStrategy.CHALLENGER_SOLVER
)

# Solve with self-refinement
answer = evolve.solve("What is 25 * 17?")
print(f"Answer: {answer.answer}, Confidence: {answer.confidence}")

# Run training loop (generates challenges โ†’ solves โ†’ improves)
metrics = evolve.training_loop(iterations=10, domain="math")
print(f"Success rate: {metrics.success_rate}")

Strategies:

  • SELF_REFINE โ€” Iterative self-improvement
  • CHALLENGER_SOLVER โ€” R-Zero co-evolutionary loop
  • EXPERIENCE_REPLAY โ€” Learn from past solutions

Based on R-Zero (arXiv:2508.05004)

๐Ÿค– Multi-Agent Framework (NEW)

Decentralized P2P agents inspired by Meta Matrix โ€” no central orchestrator bottleneck.

from rlm_toolkit.agents import MultiAgentRuntime, SecureAgent, EvolvingAgent

# Create runtime
runtime = MultiAgentRuntime()

# Register agents with Trust Zones
runtime.register(SecureAgent("analyst", "Data Analyst", trust_zone="internal"))
runtime.register(EvolvingAgent("solver", "Problem Solver", llm_provider=provider))

# Run message through agents
from rlm_toolkit.agents import AgentMessage
message = AgentMessage(content="Analyze this data", routing=["analyst", "solver"])
result = runtime.run(message)

Agent Types:

  • SecureAgent โ€” H-MEM Trust Zones integration
  • EvolvingAgent โ€” Self-improving via R-Zero
  • SecureEvolvingAgent โ€” Both combined

Based on Meta Matrix (arXiv 2025)

๐ŸŽฏ DSPy-Style Optimization (NEW)

Automatic prompt optimization โ€” define what, not how.

from rlm_toolkit.optimize import Signature, Predict, ChainOfThought, BootstrapFewShot

# Define signature
sig = Signature(
    inputs=["question", "context"],
    outputs=["answer"],
    instructions="Answer based on context"
)

# Use with Chain of Thought
cot = ChainOfThought(sig, provider)
result = cot(question="What is X?", context="X is 42")

# Auto-optimize with few-shot selection
optimizer = BootstrapFewShot(metric=lambda p, g: p["answer"] == g["answer"])
optimized = optimizer.compile(Predict(sig, provider), trainset=examples)

Modules: Predict, ChainOfThought, SelfRefine
Optimizers: BootstrapFewShot, PromptOptimizer

Inspired by Stanford DSPy

๐Ÿ“ฆ Installation

# Basic
pip install rlm-toolkit

# With all providers
pip install rlm-toolkit[all]

# Development
pip install -e ".[dev]"

๐Ÿ”ง Usage

Basic

from rlm_toolkit import RLM, RLMConfig

# With configuration
config = RLMConfig(
    max_iterations=50,
    max_cost=5.0,  # USD
)

rlm = RLM.from_openai("gpt-4o", config=config)
result = rlm.run(context, query)

With Memory

from rlm_toolkit.memory import EpisodicMemory

memory = EpisodicMemory(max_entries=1000)
rlm = RLM.from_ollama("llama3", memory=memory)

# Memory persists across runs
result1 = rlm.run(doc1, "Summarize this")
result2 = rlm.run(doc2, "Compare with previous")

With Observability

from rlm_toolkit.observability import Tracer, CostTracker

tracer = Tracer(service_name="my-app")
cost_tracker = CostTracker(budget=10.0)

rlm = RLM.from_openai("gpt-4o", tracer=tracer, cost_tracker=cost_tracker)

๐Ÿ”’ Security

RLM-Toolkit implements CIRCLE-compliant security with v1.2.1 hardening:

  • AES-256-GCM โ€” Mandatory authenticated encryption for all persistent data
  • Fail-Closed โ€” No XOR fallback; raises error if cryptography unavailable
  • Rate Limiting โ€” 60s cooldown on reindex to prevent I/O exhaustion
  • AST Analysis โ€” Block dangerous imports before execution
  • Sandboxed REPL โ€” Isolated code execution with timeouts
  • Virtual Filesystem โ€” Quota-enforced file operations
  • Attack Detection โ€” Obfuscation and indirect attack patterns
from rlm_toolkit import RLMConfig, SecurityConfig

config = RLMConfig(
    security=SecurityConfig(
        sandbox=True,
        max_execution_time=30.0,
        max_memory_mb=512,
    )
)

๐Ÿ“Š Benchmarks

Based on RLM paper methodology:

Benchmark Score
OOLONG-Pairs TBD
CIRCLE Security ~95%

๐Ÿ› ๏ธ CLI

# Run a query
rlm run --model ollama:llama3 --context file.txt --query "Summarize"

# Interactive REPL
rlm repl --model openai:gpt-4o

# Cost tracking
rlm trace --session latest

๐Ÿ“š Documentation

v1.2.1: 156 files (78 EN + 78 RU) โ€” NIOKR 10/10

Category EN RU
Concepts 25 25
Tutorials 13 13
Examples 10 10
How-To 20 20
Reference 3 3

๐Ÿค Contributing

# Clone repo
git clone https://github.com/DmitrL-dev/AISecurity.git
cd AISecurity/sentinel-community/rlm-toolkit

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Lint
ruff check rlm_toolkit/

๐Ÿ“„ License

Apache 2.0 โ€” see LICENSE

๐Ÿ™ Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rlm_toolkit-1.2.1.tar.gz (194.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rlm_toolkit-1.2.1-py3-none-any.whl (233.4 kB view details)

Uploaded Python 3

File details

Details for the file rlm_toolkit-1.2.1.tar.gz.

File metadata

  • Download URL: rlm_toolkit-1.2.1.tar.gz
  • Upload date:
  • Size: 194.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for rlm_toolkit-1.2.1.tar.gz
Algorithm Hash digest
SHA256 bc32598e004b671f89c6314e73a4e42b6d97f96141df4e95322c762632811c61
MD5 b2b4f7c79391651c0723078c76501387
BLAKE2b-256 cba1fbe1229b010a4ba59ea4c2d1761a6b94f0a9b34893d1b317a13fa25a229f

See more details on using hashes here.

File details

Details for the file rlm_toolkit-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: rlm_toolkit-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 233.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for rlm_toolkit-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c3332ffd2200e856683465fb5d43349ce1fa162ccfebf2c10a97ae8b30c164e
MD5 b63f2b9bfcc126ccacea1515b9cfb8de
BLAKE2b-256 2e7132429fdb00f78e6ac154da46aa6f9787cd48dfcb42f71d28c20cc1be1154

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page