Cross-Functional Feature Integration Guide
This document describes how to enable and configure the cross-functional features that connect different subsystems in Aragora.
Overview
Aragora's cross-functional features allow different subsystems to share data and enhance each other:
| Feature | Purpose | Default |
|---|---|---|
| KnowledgeBridgeHub | Unified access to MetaLearner, Evidence, Pattern bridges | Auto-enabled with KnowledgeMound |
| MemoryCoordinator | Atomic writes across memory systems | enable_coordinated_writes=True |
| SelectionFeedbackLoop | Performance-based agent selection | enable_performance_feedback=True |
| CrossDebateMemory | Institutional knowledge injection | enable_cross_debate_memory=True |
| Post-debate Workflows | Automated processing after debates | enable_post_debate_workflow=False |
| Evidence Storage | Persist collected evidence | Auto-enabled with KnowledgeBridgeHub |
| Culture Observation | Extract organizational patterns | Auto-enabled with KnowledgeMound |
Configuration
Basic Setup
from aragora import Arena, Environment, DebateProtocol
from aragora.debate.arena_config import ArenaConfig
config = ArenaConfig(
# Knowledge integration
enable_knowledge_retrieval=True,
enable_knowledge_ingestion=True,
enable_cross_debate_memory=True,
# Memory coordination
enable_coordinated_writes=True,
# Performance feedback
enable_performance_feedback=True,
# Post-debate automation (disabled by default)
enable_post_debate_workflow=False,
)
arena = Arena.from_config(
env=Environment(task="Design a caching strategy"),
agents=agents,
protocol=DebateProtocol(rounds=3),
config=config,
)
result = await arena.run()
Advanced Configuration
Memory Coordinator
The MemoryCoordinator provides atomic writes across multiple memory systems with full transaction support including rollback on partial failure.
from aragora.memory.coordinator import MemoryCoordinator, CoordinatorOptions
coordinator = MemoryCoordinator(
continuum_memory=continuum,
consensus_memory=consensus,
critique_store=critique_store,
knowledge_mound=mound,
)
config = ArenaConfig(
enable_coordinated_writes=True,
memory_coordinator=coordinator,
coordinator_parallel_writes=False, # Sequential for safety
coordinator_rollback_on_failure=True,
)
Transaction Rollback: When coordinator_rollback_on_failure=True, partial failures trigger automatic rollback of successful writes. Each memory system has a registered delete method:
| System | Rollback Method | Behavior |
|---|---|---|
| Continuum | delete(memory_id, archive=True) | Archives pattern before deletion |
| Consensus | delete_consensus(id, cascade_dissents=True) | Removes consensus + associated dissents |
| Critique | delete_debate(id, cascade_critiques=True) | Removes debate record + critiques |
| Mound | delete_item(item_id) | Removes knowledge item |
Custom Rollback Handlers: Override default rollback behavior:
async def custom_continuum_rollback(op: WriteOperation) -> bool:
# Custom cleanup logic
logger.warning(f"Rolling back continuum write: {op.result}")
return True # Return True if rollback succeeded
coordinator.register_rollback_handler("continuum", custom_continuum_rollback)
Transaction Inspection: Check transaction status after commit:
tx = await coordinator.commit_debate_outcome(ctx)
if tx.partial_failure:
failed_ops = tx.get_failed_operations()
for op in failed_ops:
logger.error(f"{op.target} failed: {op.error}")
if tx.rolled_back:
logger.warning("Transaction was rolled back due to failures")
Selection Feedback Loop
Adjusts agent selection weights based on debate performance:
from aragora.debate.selection_feedback import SelectionFeedbackLoop
feedback_loop = SelectionFeedbackLoop(
learning_rate=0.15,
decay_factor=0.9,
min_debates_for_adjustment=5,
)
config = ArenaConfig(
enable_performance_feedback=True,
selection_feedback_loop=feedback_loop,
feedback_loop_weight=0.15,
)
Cross-Debate Memory
Injects institutional knowledge from past debates:
from aragora.memory.cross_debate_rlm import CrossDebateMemory
cross_memory = CrossDebateMemory(
critique_store=critique_store,
max_context_items=10,
)
config = ArenaConfig(
enable_cross_debate_memory=True,
cross_debate_memory=cross_memory,
)
Post-Debate Workflows
Trigger automated processing after high-confidence debates:
from aragora.workflow.engine import WorkflowEngine
from aragora.workflow.patterns import refinement_workflow
config = ArenaConfig(
enable_post_debate_workflow=True,
post_debate_workflow=refinement_workflow,
post_debate_workflow_threshold=0.7, # Min confidence
)
Feature Interactions
Knowledge Flow
Debate Start
│
├─► CrossDebateMemory queries past debates
│ └─► Injects institutional knowledge
│
├─► KnowledgeMound provides relevant context
│ └─► Cached via TTL-based caching
│
└─► Belief cruxes injected from similar debates
Debate Rounds
│
└─► Evidence collected and linked
Debate End
│
├─► EvidenceBridge stores evidence in mound
│
├─► Culture patterns extracted and stored
│
├─► MemoryCoordinator writes atomically to:
│ ├─► ConsensusMemory
│ ├─► ContinuumMemory
│ ├─► CritiqueStore
│ └─► KnowledgeMound
│
├─► SelectionFeedbackLoop adjusts agent weights
│
└─► Post-debate workflow triggered (if enabled)