# VAPORA Agents Service Schema with Learning Profiles

{
  host | String | doc "Agents server bind address" | default = "0.0.0.0",
  port | Number | doc "Agents server port" | default = 8002,
  max_instances | Number | doc "Maximum concurrent agent instances" | default = 10,
  heartbeat_interval | Number | doc "Heartbeat interval in seconds" | default = 300,
  health_check_timeout | Number | doc "Health check timeout in seconds" | default = 5,

  learning = {
    enabled | Bool | doc "Enable learning profile persistence" | default = true,
    recency_window_days | Number | doc "Recency bias window in days" | default = 7,
    recency_multiplier | Number | doc "Recency multiplier (3x for recent)" | default = 3.0,

    scoring = {
      load_weight | Number | doc "Load factor weight in scoring" | default = 0.3,
      expertise_weight | Number | doc "Expertise weight in scoring" | default = 0.5,
      confidence_weight | Number | doc "Confidence weight (prevents overfitting)" | default = 0.2,
    },
  },

  knowledge_graph = {
    enabled | Bool | doc "Enable knowledge graph for execution history" | default = true,
    retention_days | Number | doc "Days to retain execution history" | default = 7,
    causal_reasoning | Bool | doc "Enable causal reasoning for task relationships" | default = true,
    similarity_search | Bool | doc "Enable similarity search for recommendations" | default = true,
  },

  swarm = {
    enabled | Bool | doc "Enable swarm coordination" | default = true,
    load_balancing_strategy | String | doc "Strategy: round_robin, weighted, least_loaded" | default = "weighted",
    capability_filtering | Bool | doc "Filter agents by task capabilities" | default = true,
  },

  nats = {
    enabled | Bool | doc "Enable NATS JetStream for coordination" | default = false,
    url | String | doc "NATS server URL" | default = "nats://localhost:4222",
    timeout | Number | doc "NATS connection timeout in seconds" | default = 60,
  },

  registry = {
    persistence | Bool | doc "Persist agent registry to storage" | default = true,
    path | String | doc "Registry storage path" | default = "/var/lib/vapora/agents/registry",
  },
}
