Skip to main content

Recursive Language Models Toolkit for processing unlimited context

Project description

RLM-Toolkit

CI PyPI Python License Integrations

Recursive Language Models Toolkit — библиотека для обработки контекстов произвольной длины (10M+ токенов) с использованием рекурсивных вызовов LLM.

🚀 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:

  • 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

🤝 Contributing

# Clone repo
git clone https://github.com/sentinel-community/rlm-toolkit.git
cd 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.0.0.tar.gz (198.1 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.0.0-py3-none-any.whl (183.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rlm_toolkit-1.0.0.tar.gz
  • Upload date:
  • Size: 198.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rlm_toolkit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 14d3f28d84db7e99bf747f85603fe96a4a44b5a94eadac905f5009b763b04d41
MD5 976ff1bd758684199162c8383087e044
BLAKE2b-256 416facee052a208e1b0b4dd2e337b5cb249eb8c6858c9b78699e9b341550485c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rlm_toolkit-1.0.0.tar.gz:

Publisher: rlm-release.yml on DmitrL-dev/AISecurity

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: rlm_toolkit-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 183.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rlm_toolkit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0fcf09f6c065ed1c52eb4b0a1871a4c5442a764de5d36ece6a131a27e2d0fdf7
MD5 f4b6d0c29f15834fa0622f291434bc0d
BLAKE2b-256 5175f10041836cb7e5c21d07a304a9a0bf8093ea8929938e13e0513841f416f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rlm_toolkit-1.0.0-py3-none-any.whl:

Publisher: rlm-release.yml on DmitrL-dev/AISecurity

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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