UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

344 lines (308 loc) 8.97 kB
# UCT-Based Agent Selection Schema # Based on REF-024 LATS Research # Issue: #166 $schema: "https://json-schema.org/draft/2020-12/schema" $id: "https://aiwg.io/schemas/uct-agent-selection/v1" title: "UCT Agent Selection Schema" description: | Schema for Monte Carlo Tree Search inspired agent selection using Upper Confidence Bound for Trees (UCT) algorithm to balance exploration vs exploitation per REF-024 LATS. type: object required: - version - uct_config - performance_tracking properties: version: type: string pattern: "^\\d+\\.\\d+\\.\\d+$" default: "1.0.0" uct_config: $ref: "#/$defs/UCTConfig" performance_tracking: $ref: "#/$defs/PerformanceTracking" task_classification: $ref: "#/$defs/TaskClassification" $defs: UCTConfig: type: object description: "UCT algorithm configuration" properties: enabled: type: boolean default: true exploration_constant: type: number default: 1.414 description: "c parameter (typically sqrt(2))" minimum_attempts: type: integer default: 3 description: "Force exploration until each agent tried N times" neutral_prior: type: number default: 0.5 description: "Success rate for untried agent/task combinations" decay_factor: type: number default: 0.95 description: "Decay old performance data (optional)" formula: type: string default: "Q(agent,task_type) + c * sqrt(ln(N_total) / N_agent)" description: | UCT formula: - Q(agent,task_type) = Average success rate - N_total = Total attempts across all agents - N_agent = Attempts by this agent - c = Exploration constant PerformanceTracking: type: object description: "Agent performance statistics" properties: storage_path: type: string default: ".aiwg/agent-selection/performance-stats.json" metrics: type: array items: type: string default: - attempts - successes - failures - average_completion_time - average_quality_score retention_days: type: integer default: 90 description: "Keep performance data for N days" TaskClassification: type: object description: "Task type classification for agent routing" properties: classification_method: type: string enum: - keyword_matching - embedding_similarity - rule_based default: keyword_matching task_types: type: array items: type: object properties: type: type: string keywords: type: array items: type: string preferred_agents: type: array items: type: string capable_agents: type: array items: type: string default: - type: security keywords: [security, auth, crypto, vulnerability, permission] preferred_agents: [security-auditor, architect] capable_agents: [test-engineer, code-reviewer] - type: testing keywords: [test, coverage, validation, assertion, mock] preferred_agents: [test-engineer] capable_agents: [software-implementer, security-auditor] - type: architecture keywords: [architecture, design, adr, structure, pattern] preferred_agents: [architect, api-designer] capable_agents: [requirements-analyst] - type: implementation keywords: [implement, code, function, feature, build] preferred_agents: [software-implementer] capable_agents: [test-engineer, architect] - type: requirements keywords: [requirement, story, use case, acceptance, criteria] preferred_agents: [requirements-analyst] capable_agents: [product-manager, architect] - type: deployment keywords: [deploy, release, ci, cd, pipeline, docker] preferred_agents: [devops-engineer] capable_agents: [software-implementer] - type: documentation keywords: [document, readme, guide, api docs, comment] preferred_agents: [technical-writer] capable_agents: [software-implementer, architect] - type: general keywords: [] preferred_agents: [software-implementer] capable_agents: [all] # Agent performance record schema agent_stats: type: object required: - agent_name - task_type properties: agent_name: type: string task_type: type: string attempts: type: integer default: 0 successes: type: integer default: 0 failures: type: integer default: 0 success_rate: type: number description: "Calculated: successes / attempts" average_completion_time: type: number description: "Seconds" average_quality_score: type: number minimum: 0 maximum: 1 last_updated: type: string format: date-time # Selection result schema selection_result: type: object required: - task - selected_agent - uct_score properties: task: type: object properties: description: type: string classified_type: type: string available_agents: type: array items: type: string selected_agent: type: string uct_score: type: number exploitation_term: type: number description: "Q value (success rate)" exploration_term: type: number description: "Exploration bonus" selection_reason: type: string description: "Human-readable explanation" all_scores: type: array items: type: object properties: agent: type: string score: type: number reason: type: string timestamp: type: string format: date-time # Agent protocol agent_protocol: select_agent: description: "Select agent using UCT algorithm" steps: - classify_task_type - load_performance_stats - calculate_total_attempts - for_each_available_agent: - get_success_rate - get_attempt_count - if_below_minimum_attempts: - return_infinity_score - else: - calculate_exploitation_term - calculate_exploration_term - sum_for_uct_score - sort_by_uct_score_descending - select_highest_score - log_selection_reasoning - return_selected_agent record_outcome: description: "Update performance after task completion" triggers: - task_completed - task_failed steps: - identify_agent_and_task_type - load_existing_stats - increment_attempts - update_success_or_failure - update_rolling_averages - persist_updated_stats generate_report: description: "Generate agent performance report" triggers: - manual_request - scheduled_weekly steps: - load_all_performance_stats - calculate_per_agent_metrics - compare_to_baseline - identify_optimal_routing - generate_recommendations - output_report # CLI integration cli_options: selection_strategy: name: "--agent-selection" type: string choices: ["uct", "round-robin", "fixed", "random"] default: "uct" help: "Agent selection strategy" exploration_constant: name: "--exploration-constant" short: "-c" type: number default: 1.414 help: "UCT exploration constant (higher = more exploration)" show_selection: name: "--show-selection" type: boolean default: false help: "Display agent selection reasoning" # Performance targets (from REF-024) research_targets: improvement_vs_random: "+8pp success rate" improvement_vs_round_robin: "+5pp success rate" time_reduction: "-18% avg task time" rework_reduction: "-10pp rework rate" optimal_exploration_constant: "1.414 (sqrt(2))" # Storage storage: stats_path: ".aiwg/agent-selection/performance-stats.json" selection_log_path: ".aiwg/agent-selection/selection-log.jsonl" reports_path: ".aiwg/reports/agent-selection/" # References references: research: - "@.aiwg/research/findings/REF-024-lats.md" implementation: - "#166" related: - "@agentic/code/frameworks/sdlc-complete/schemas/flows/agent-capability-matrix.yaml" - "@.claude/rules/agent-fallback.md" - "@.aiwg/research/synthesis/topic-06-structured-exploration.md"