Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
SEAL — Self-Evolving Agentic Learning
This crate (rullama-seal) implements the SEAL framework for enhancing conversational question answering and agent decision-making. It provides coreference resolution, structured query extraction, self-evolving pattern learning, and post-execution reflection — enabling agents to understand implicit references, build reusable knowledge, and correct their own mistakes without retraining.
Inspired by: SEAL: Self-Evolving Agentic Learning for Conversational Question Answering over Knowledge Graphs (Wang et al., arXiv:2512.04868, December 2024)
Crate boundary
SEAL spent part of the 0.10 cycle folded into rullama-agent behind a seal feature flag; in 0.11 it moved back out into the standalone rullama-seal crate. The dependencies it needs — ResponseConfidence (now in rullama-core), ToolOutcome / ToolErrorCategory (in rullama-tool-runtime), RelationshipGraph (in rullama-knowledge) — are all addressable from a leaf crate, so the standalone shape is back to being the right one. Optional integrations use the knowledge, feedback, and mdap features.
Feature Flags
| Feature | Description |
|---|---|
seal |
Core SEAL pipeline (coreference, query extraction, learning, reflection) |
seal-mdap |
MDAP metric recording via mdap feature |
seal-knowledge |
BKS/PKS knowledge system integration via rullama-knowledge |
seal-feedback |
Audit feedback bridge via rullama-permission |
# Core SEAL
= "0.12"
# With knowledge integration
= { = "0.12", = ["knowledge"] }
# Via the rullama facade
= { = "0.12", = ["seal"] }
Architecture
User Query
│
▼
┌─── Coreference Resolution ─────────────────────────────────────┐
│ detect_references() → resolve() → rewrite_with_resolutions() │
│ "What uses it?" → "What uses [main.rs]?" │
└────────────────────────────────┬────────────────────────────────┘
│
▼
┌─── Query Core Extraction ──────────────────────────────────────┐
│ classify() → build_expression() → QueryCore │
│ S-expression: (JOIN DependsOn ?dep "main.rs") │
└────────────────────────────────┬────────────────────────────────┘
│
▼
┌─── Learning Coordinator ───────────────────────────────────────┐
│ Local Memory (per-session) │ Global Memory (cross-session) │
│ process_query() → match pattern or create new │
│ record_outcome() → update reliability scores │
└────────────────────────────────┬────────────────────────────────┘
│
▼
┌─── Reflection Module ──────────────────────────────────────────┐
│ analyze() → detect issues → suggest fixes → attempt_correction│
│ Errors: EmptyResult, Overflow, EntityNotFound, RelationMismatch│
└────────────────────────────────────────────────────────────────┘
Quick Start
use ;
use ;
let mut processor = with_defaults;
processor.init_conversation;
let result = processor.process?;
println!;
Components
SealProcessor— Main orchestrator chaining all pipeline stagesCoreferenceResolver— Salience-weighted anaphora resolutionQueryCoreExtractor— NL → structured S-expression queriesLearningCoordinator— Dual-level memory (local + global) with pattern learningReflectionModule— Post-execution error detection and correctionSealKnowledgeCoordinator— BKS/PKS bidirectional bridge (requiresseal-knowledge)FeedbackBridge— Audit log → learning signal converter (requiresseal-feedback)