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.
364 lines (333 loc) • 8.13 kB
YAML
# Mixture of Experts Agent Routing Schema
# Based on REF-007 Mixture of Experts
# Issues: #190, #191
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://aiwg.io/schemas/moe-agent-routing/v1"
title: "MoE Agent Routing and Sparse Activation Schema"
description: |
Schema for Mixture of Experts inspired routing and sparse agent activation
per REF-007 MoE.
type: object
required:
- version
- routing_config
- activation_policy
properties:
version:
type: string
pattern: "^\\d+\\.\\d+\\.\\d+$"
default: "1.0.0"
routing_config:
$ref: "#/$defs/RoutingConfig"
activation_policy:
$ref: "#/$defs/ActivationPolicy"
$defs:
RoutingConfig:
type: object
description: "MoE-inspired routing configuration"
properties:
enabled:
type: boolean
default: true
top_k:
type: integer
default: 3
description: "Number of agents to activate per task"
scoring_weights:
type: object
properties:
domain_match:
type: number
default: 0.40
operation_match:
type: number
default: 0.30
complexity_fit:
type: number
default: 0.20
artifact_match:
type: number
default: 0.10
load_balancing:
type: object
properties:
enabled:
type: boolean
default: true
min_utilization:
type: number
default: 0.2
max_utilization:
type: number
default: 0.8
prefer_underutilized:
type: boolean
default: true
ActivationPolicy:
type: object
description: "Sparse activation policy"
properties:
max_active:
type: integer
default: 5
description: "Maximum agents in memory"
ttl_seconds:
type: integer
default: 300
description: "Time-to-live for inactive agents"
preload:
type: array
items:
type: string
default:
- orchestrator
description: "Always-active agents"
eager_load:
type: array
items:
type: string
default: []
description: "Load at session start"
lazy_load:
type: boolean
default: true
description: "Load agents on first use"
# Task feature extraction
task_features:
type: object
properties:
domain:
type: string
enum:
- requirements
- architecture
- implementation
- testing
- security
- deployment
- documentation
- general
operation:
type: string
enum:
- create
- review
- analyze
- refactor
- test
- deploy
- document
- debug
complexity:
type: integer
minimum: 1
maximum: 10
artifacts:
type: array
items:
type: string
description: "Referenced artifact types"
context_tags:
type: array
items:
type: string
description: "Project tags, tech stack"
word_count:
type: integer
has_artifact_references:
type: boolean
has_multiple_phases:
type: boolean
# Agent capability profile
agent_capability:
type: object
required:
- agent_name
- domains
- operations
properties:
agent_name:
type: string
domains:
type: object
additionalProperties:
type: number
minimum: 0
maximum: 1
description: "Domain → expertise score"
operations:
type: object
additionalProperties:
type: number
minimum: 0
maximum: 1
description: "Operation → proficiency"
complexity_range:
type: object
properties:
min:
type: integer
default: 1
max:
type: integer
default: 10
optimal:
type: integer
default: 5
artifact_types:
type: array
items:
type: string
tags:
type: array
items:
type: string
# Routing result schema
routing_result:
type: object
required:
- task
- selected_agents
properties:
task:
type: string
features:
$ref: "#/$defs/task_features"
confidence:
type: number
minimum: 0
maximum: 1
reasoning:
type: string
selected_agents:
type: array
items:
type: object
properties:
agent:
type: string
score:
type: number
reasoning:
type: string
routing_time_ms:
type: number
# Agent activation state
activation_state:
type: object
properties:
active_agents:
type: array
items:
type: object
properties:
agent:
type: string
loaded_at:
type: string
format: date-time
last_used:
type: string
format: date-time
task_count:
type: integer
memory_mb:
type: number
total_active:
type: integer
max_allowed:
type: integer
preloaded:
type: array
items:
type: string
# Agent protocol
agent_protocol:
extract_features:
description: "Extract features from task description"
steps:
- tokenize_task
- identify_domain_keywords
- identify_operation_keywords
- estimate_complexity
- detect_artifact_references
- extract_context_tags
- return_features
route_task:
description: "Route task to appropriate agents"
steps:
- extract_features
- load_agent_capabilities
- for_each_agent:
- calculate_domain_score
- calculate_operation_score
- calculate_complexity_fit
- calculate_artifact_match
- compute_total_score
- apply_load_balancing
- select_top_k_agents
- return_routing_result
activate_agents:
description: "Activate selected agents"
steps:
- get_current_active
- for_each_selected:
- if_not_loaded:
- load_agent
- add_to_active
- prune_inactive
- return_activated_agents
prune_inactive:
description: "Deactivate stale agents"
steps:
- get_current_time
- for_each_active:
- if_ttl_exceeded:
- if_not_preloaded:
- unload_agent
- remove_from_active
update_quality_feedback:
description: "Update routing weights from outcomes"
triggers:
- task_completed
steps:
- get_task_result
- get_selected_agents
- calculate_quality_score
- update_agent_scores
- persist_metrics
# CLI commands
cli_commands:
route_explain:
command: "aiwg route-explain <task>"
description: "Show routing decision for task"
agents_active:
command: "aiwg agents active"
description: "Show currently active agents"
agents_stats:
command: "aiwg agents stats"
description: "Show agent utilization statistics"
route_override:
command: "aiwg task <task> --agents <list>"
description: "Override automatic routing"
# Performance targets (from REF-007)
research_targets:
routing_latency: "<50ms per decision"
memory_reduction: "60%+ vs full load"
activation_latency: "<100ms per agent"
quality_maintenance: "Equal or better vs. all-agents"
# Storage
storage:
capabilities_path: ".aiwg/agent-selection/capabilities.json"
metrics_path: ".aiwg/agent-selection/routing-metrics.json"
activation_log: ".aiwg/logs/agent-activation.jsonl"
# References
references:
research:
- "@.aiwg/research/findings/REF-007-mixture-of-experts.md"
implementation:
- "#190"
- "#191"
related:
- "@agentic/code/frameworks/sdlc-complete/schemas/flows/uct-agent-selection.yaml"
- "@agentic/code/frameworks/sdlc-complete/schemas/flows/semantic-agent-discovery.yaml"