Files
microdao-daarion/config/AGENT-ORCHESTRATION-SCHEMA.md

2.3 KiB

Agent Orchestration Schema (SSOT)

config/agent_registry.yml is the only source of truth.

Per-Agent Block

Use this block for every top-level agent:

orchestration:
  mode: llm_only | crew_only | hybrid
  crew:
    enabled: true|false
    default_profile: default
    profile_hints:
      profile_name: ["keyword1", "keyword2"]
    profiles:
      default:
        team_name: "Agent Team"
        parallel_roles: true
        max_concurrency: 3
        synthesis:
          role_context: "Agent Orchestrator"
          system_prompt_ref: "roles/<agent>/orchestrator_synthesis.md"
          llm_profile: reasoning
        team:
          - id: role_id
            role_context: "Role Name"
            system_prompt_ref: "roles/<agent>/role.md"
            llm_profile: science
            skills: [optional, for router summary only]
        delegation:
          enabled: false
          max_hops: 2
          forbid_self: true
          allow_top_level_agents: []
  a2a:
    enabled: false
    allow_top_level_agents: []
    max_hops: 2
    forbid_self: true
  response_contract:
    user_visible_speaker: self
    crew_roles_user_visible: false

Generation Rules

  • tools/agents generate builds config/crewai_agents.json from orchestration.*.
  • Router uses crewai_agents.json only for light decision metadata.
  • Optional generation target: config/crewai_teams.generated.yml (feature flag generate_crewai_teams).
  • Runtime services/crewai-service/app/registry_loader.py remains bound to crewai_teams.yml until final cutover.

Validation Rules

  • mode must be one of: llm_only, crew_only, hybrid.
  • If mode in [crew_only, hybrid], then crew.enabled must be true.
  • If crew.enabled=true, then:
    • crew.profiles must be non-empty.
    • crew.default_profile must exist in crew.profiles.
    • default profile must have either:
      • non-empty team, or
      • delegation.enabled=true (delegation-only orchestrator).
  • response_contract.crew_roles_user_visible must be false.
  • For top-level agents, user-facing response speaker is always self.

Migration Notes

  • Legacy crewai block is still supported by generator as fallback.
  • Recommended path:
    1. define orchestration for all top-level agents,
    2. enable generate_crewai_teams,
    3. switch CrewAI runtime to generated teams file,
    4. remove legacy crewai block.