plexus.agentic.alignment_optimizer module
Alignment Optimizer - Programmatic interface for feedback evaluation optimization with RCA
This module provides a clean Python API for running the Tactus-based feedback alignment optimizer procedure, enabling integration into automated systems and agentic applications.
- class plexus.agentic.alignment_optimizer.AlignmentOptimizer(client, mcp_server)
Bases:
objectProgrammatic interface to feedback alignment optimization using Tactus procedures.
This class wraps the feedback_alignment_optimizer Tactus procedure, providing a simple Python API for running iterative score optimization with RCA-based analysis.
- Example:
```python from plexus.agentic import AlignmentOptimizer from plexus.dashboard.api.client import PlexusDashboardClient
client = PlexusDashboardClient(api_key=”…”) optimizer = AlignmentOptimizer(client, mcp_server)
- result = await optimizer.optimize(
scorecard=”customer-service”, score=”empathy”, days=90, max_iterations=10
)
print(f”Improved AC1 by {result[‘improvement’]:.4f}”) print(f”Completed {len(result[‘iterations’])} iterations”) ```
Initialize the AlignmentOptimizer.
- Args:
client: PlexusDashboardClient instance with valid credentials mcp_server: MCP server instance for tool execution
- __init__(client, mcp_server)
Initialize the AlignmentOptimizer.
- Args:
client: PlexusDashboardClient instance with valid credentials mcp_server: MCP server instance for tool execution
- async optimize(scorecard: str, score: str, days: int = 90, max_iterations: int = 10, improvement_threshold: float = 0.02, dry_run: bool = False, on_iteration: Callable[[int, Dict[str, Any]], None] | None = None) Dict[str, Any]
Run feedback evaluation optimization for a score.
This method executes the complete optimization workflow: 1. Run baseline feedback evaluation with RCA 2. Iteratively analyze RCA, propose changes, evaluate, and compare 3. Return comprehensive results with all iteration data
- Args:
scorecard: Scorecard identifier (name, key, or ID) score: Score identifier (name, key, or ID) days: Feedback window in days (default: 90) max_iterations: Maximum optimization iterations (default: 10) improvement_threshold: Minimum AC1 improvement to continue (default: 0.02 = 2%) dry_run: If True, run analysis only without making score updates (default: False) on_iteration: Optional callback called after each iteration with (iteration_num, iteration_data)
- Returns:
- Dict containing:
success: bool - Whether optimization completed successfully
status: str - Completion status (converged, max_iterations, user_stopped, etc.)
message: str - Human-readable summary message
baseline_evaluation_id: str - Initial baseline evaluation ID
final_evaluation_id: str - Final evaluation ID
iterations: list - Array of iteration results with metrics and deltas
improvement: float - Total AC1 improvement from baseline to final
scorecard_id: str - Resolved scorecard ID
score_id: str - Resolved score ID
- Raises:
FileNotFoundError: If procedure YAML cannot be found Exception: If procedure execution fails
- async run_baseline_only(scorecard: str, score: str, days: int = 90) Dict[str, Any]
Run only the baseline evaluation without optimization iterations.
This is useful for getting an initial RCA analysis before deciding whether to proceed with full optimization.
- Args:
scorecard: Scorecard identifier score: Score identifier days: Feedback window in days
- Returns:
Dict with baseline evaluation results and RCA
- class plexus.agentic.alignment_optimizer.OptimizationMonitor
Bases:
objectHelper class for monitoring optimization progress in real-time.
- Example:
```python monitor = OptimizationMonitor()
- result = await optimizer.optimize(
scorecard=”customer-service”, score=”empathy”, on_iteration=monitor.on_iteration
)
- __init__()
- on_iteration(iteration_num: int, iteration_data: Dict[str, Any])
Callback for each completed iteration.
- print_summary()
Print a summary of all iterations.