Add complete QLM (Quantum Language Model) implementation

This commit introduces the QLM system - a stateful semantic layer for
tracking HI (Human Intelligence), AI (Agent Intelligence), and QI
(Quantum/Emergent Intelligence) in BlackRoad OS.

Core Features:
- HI/AI/QI intelligence layer modeling
- Event-driven state management
- QI emergence detection (agent self-correction, feedback loops, etc.)
- HI-AI alignment scoring
- Operator-facing query interface
- Reality ingestion (git, CI, agent logs)

Components Added:
- qlm_lab/models.py: Core data models (Actor, QLMEvent, QIEmergence, etc.)
- qlm_lab/state.py: State management and transition tracking
- qlm_lab/api.py: Public QLMInterface API
- qlm_lab/ingestion/: Git, CI, and agent log connectors
- qlm_lab/experiments/: Alignment and emergence validation
- qlm_lab/visualization.py: Timeline, actor graph, alignment plots
- qlm_lab/demo.py: Interactive demo script
- tests/test_qlm_core.py: Comprehensive test suite
- docs/QLM.md: Complete documentation (concepts, API, integration)

Usage:
  from qlm_lab.api import QLMInterface

  qlm = QLMInterface()
  qlm.record_operator_intent("Build feature X")
  qlm.record_agent_execution("agent-1", "Implement X", "task-1")
  summary = qlm.get_summary(days=7)

Run:
  python -m qlm_lab.demo
  python -m qlm_lab.experiments.alignment_detection
  pytest tests/test_qlm_core.py -v

Integrates with:
- cognitive/intent_graph.py (intent tracking)
- cognitive/agent_coordination.py (multi-agent coordination)
- operator_engine/scheduler.py (background analysis)

Next steps: Integrate with FastAPI backend, add Prism Console UI,
implement Lucidia language runtime.
This commit is contained in:
Claude
2025-11-18 08:15:06 +00:00
parent 1733282bb2
commit e478add607
15 changed files with 4534 additions and 0 deletions

View File

@@ -0,0 +1,198 @@
"""
Experiment: Alignment Detection
Hypothesis: QLM can accurately detect when AI agents drift from Operator intent.
Setup:
1. Record Operator intent
2. Simulate agent executions (some aligned, some not)
3. Record Operator feedback (approvals/vetoes)
4. Measure QLM's alignment score accuracy
Success Criteria:
- QLM alignment score correlates with actual alignment
- QLM detects misalignment before Operator veto
"""
import json
from typing import Dict, Any
import logging
from qlm_lab.api import QLMInterface
from qlm_lab.models import ActorRole
logger = logging.getLogger(__name__)
class AlignmentDetectionExperiment:
"""Experiment: Does QLM detect intent drift?"""
def __init__(self):
self.qlm = QLMInterface()
self.results = {
"experiment": "alignment_detection",
"hypothesis": "QLM can detect AI drift from HI intent",
"scenarios": [],
"metrics": {},
}
def run_scenario(
self,
scenario_name: str,
intent: str,
agent_actions: list,
expected_alignment: float,
) -> Dict[str, Any]:
"""
Run one alignment scenario.
Args:
scenario_name: Name of scenario
intent: Operator intent
agent_actions: List of (agent_id, action, aligned: bool)
expected_alignment: Expected alignment score
Returns:
Scenario results
"""
print(f"\nScenario: {scenario_name}")
print(f"Intent: {intent}")
# Record intent
intent_id = f"intent-{scenario_name}"
self.qlm.record_operator_intent(intent, intent_node_id=intent_id)
# Execute agent actions
for i, (agent_id, action, is_aligned) in enumerate(agent_actions):
task_id = f"task-{scenario_name}-{i}"
# Agent executes
self.qlm.record_agent_execution(
agent_id, action, task_id, intent_node_id=intent_id
)
# Agent completes
self.qlm.record_agent_completion(agent_id, task_id, success=True)
# Operator feedback
if is_aligned:
self.qlm.record_operator_approval(
action, intent_node_id=intent_id, task_id=task_id
)
print(f"{action} (aligned)")
else:
self.qlm.record_operator_veto(
action,
"Doesn't match my intent",
intent_node_id=intent_id,
task_id=task_id,
)
print(f"{action} (not aligned)")
# Calculate alignment
measured_alignment = self.qlm.get_alignment_score()
print(f" Expected alignment: {expected_alignment:.1%}")
print(f" Measured alignment: {measured_alignment:.1%}")
# Calculate error
error = abs(measured_alignment - expected_alignment)
print(f" Error: {error:.1%}")
result = {
"scenario": scenario_name,
"intent": intent,
"expected_alignment": expected_alignment,
"measured_alignment": measured_alignment,
"error": error,
"success": error < 0.2, # Success if within 20%
}
self.results["scenarios"].append(result)
return result
def run(self) -> Dict[str, Any]:
"""Run all alignment scenarios"""
print("=" * 60)
print("Experiment: Alignment Detection")
print("=" * 60)
# Register agents
self.qlm.register_agent("agent-001", "Agent1", ActorRole.EXECUTOR)
self.qlm.register_agent("agent-002", "Agent2", ActorRole.EXECUTOR)
# Scenario 1: Perfect alignment
self.run_scenario(
"perfect_alignment",
intent="Build login page",
agent_actions=[
("agent-001", "Create login form HTML", True),
("agent-001", "Add CSS styling", True),
("agent-002", "Add authentication logic", True),
],
expected_alignment=1.0,
)
# Scenario 2: Partial alignment
self.run_scenario(
"partial_alignment",
intent="Optimize database queries",
agent_actions=[
("agent-001", "Add database indexes", True),
("agent-001", "Refactor unrelated code", False), # Off-track
("agent-002", "Cache query results", True),
],
expected_alignment=0.67,
)
# Scenario 3: No alignment
self.run_scenario(
"no_alignment",
intent="Fix security vulnerability",
agent_actions=[
("agent-001", "Add new feature", False),
("agent-001", "Refactor UI", False),
("agent-002", "Update documentation", False),
],
expected_alignment=0.0,
)
# Calculate metrics
total_scenarios = len(self.results["scenarios"])
successful_scenarios = sum(
1 for s in self.results["scenarios"] if s["success"]
)
avg_error = sum(s["error"] for s in self.results["scenarios"]) / total_scenarios
self.results["metrics"] = {
"total_scenarios": total_scenarios,
"successful_scenarios": successful_scenarios,
"success_rate": successful_scenarios / total_scenarios,
"average_error": avg_error,
}
print("\n" + "=" * 60)
print("Experiment Results")
print("=" * 60)
print(f"Success Rate: {self.results['metrics']['success_rate']:.1%}")
print(f"Average Error: {self.results['metrics']['average_error']:.1%}")
print()
if self.results["metrics"]["success_rate"] >= 0.8:
print("✅ PASS: QLM accurately detects alignment")
else:
print("❌ FAIL: QLM alignment detection needs improvement")
return self.results
def save_results(self, file_path: str) -> None:
"""Save experiment results to JSON"""
with open(file_path, "w") as f:
json.dump(self.results, f, indent=2)
print(f"\nResults saved to: {file_path}")
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
experiment = AlignmentDetectionExperiment()
results = experiment.run()
experiment.save_results("alignment_detection_results.json")