User

Agent Orchestrator

Digital network
Agent Framework

Built with Python & Microsoft Agent Framework

A2A Protocol v0.3.0 & AG-UI Protocol Compliant Server

Built with Python and powered by the Microsoft Agent Framework, this orchestrator enables seamless agent-to-agent communication using the standardized A2A protocol and supports AG-UI protocol for interactive agent experiences with AG-UI clients. Implemented with FastAPI and the official A2A SDK, it provides dynamic workflow orchestration, multi-agent coordination, and comprehensive health monitoring for distributed agent systems.

Uses Agent Framework Workflows with a graph-based architecture for defining complex agent interactions. Workflows are composed of nodes (representing agents) and edges (representing connections and message flow between agents), enabling sophisticated multi-step reasoning and task delegation patterns.

Python Agent Framework A2A Protocol AG-UI Protocol Documentation

API Endpoints & Documentation

Explore the A2A protocol endpoints, agent cards, and workflow orchestration APIs.


Agent Orchestrator Dashboard

Live monitoring of all subsystems and services. Updates every 30 seconds.

Loading system status...


🚀 Quick Start: Chat with Agent

Use this curl command to send a message to the orchestrator agent via the A2A protocol. The agent will return a task ID that you can use to check the status and results.

Terminal Command
curl -X POST http://agent-orchestrator-python-test-01-dev-lhcdt.agentic-system-design.002.eastus2.containers.sbp.eyclienthub.com/invoke \
-H "Content-Type: application/json" \
-d '{"input": {"message": "Explain quantum computing in simple terms"}}'
✅ Response:
{
  "task_id": "abc-123...",
  "task_url": "http://agent-orchestrator-python-test-01-dev-lhcdt.agentic-system-design.002.eastus2.containers.sbp.eyclienthub.com/tasks/abc-123...",
  "status": {"state": "running"}
}
📝 Next Step: Click or curl the task_url to check status and get results.

⚙️ Workflow Configuration

Configure the agent orchestrator to run multi-agent workflows.

Required Environment Variables

Configure these parameters to enable full orchestrator functionality:

Parameter Required Default Description
Workflow Configuration
WORKFLOW_NODES Required [] JSON array defining workflow nodes. Each node represents a step in the workflow (start, agent, end).
WORKFLOW_EDGES Required [] JSON array defining connections between nodes. Controls workflow execution flow.
WORKFLOW_AGENT_LIST Required [] JSON array of A2A agents. Defines available agents with their URLs and capabilities.
Azure OpenAI Configuration
LLM_ENDPOINT Required "" Azure OpenAI endpoint URL (e.g., https://your-resource.openai.azure.com/)
LLM_KEY Required "" Azure OpenAI API key for authentication
LLM_DEPLOYMENT_NAME Optional gpt-4o Azure OpenAI deployment name
LLM_VERSION Optional 2024-02-01 Azure OpenAI API version
LLM_MODEL Optional gpt-4 Azure OpenAI model name
Embedding Service Configuration
EMBEDDING_BASE_URL Optional "" Base URL for embedding service
EMBEDDING_API_KEY Optional "" API key for embedding service authentication
EMBEDDING_PROVIDER Optional azure Embedding provider (azure, openai, etc.)
Database Configuration
DB_HOST or PG_HOST Optional localhost PostgreSQL database host
DB_PORT or PG_PORT Optional 5432 PostgreSQL database port
DB_NAME Optional orchestrator PostgreSQL database name
DB_USERNAME or PG_USER Optional postgres PostgreSQL database username
DB_PASSWORD or PG_PASSWORD Optional "" PostgreSQL database password
Server Configuration
PORT Optional 8080 Server port (5015 for local development)
HOST Optional 0.0.0.0 Server host address
ENVIRONMENT Optional development Application environment (development, production)
DEBUG Optional false Enable debug mode

Example Configuration

.env file
# Workflow Configuration
WORKFLOW_NODES='[{"id":"start","type":"start"},{"id":"agent1","type":"agent","agent_ref":"research-agent"}]'
WORKFLOW_EDGES='[{"source":"start","target":"agent1"}]'
WORKFLOW_AGENT_LIST='[{"agentName":"research-agent","agentUrl":"http://localhost:5016"}]'

# Azure OpenAI Configuration
LLM_ENDPOINT=https://your-openai.openai.azure.com/
LLM_KEY=your-api-key-here
LLM_DEPLOYMENT_NAME=gpt-4o
📚 Need Help?
For detailed workflow configuration and examples, see the DETAILS.md documentation

🔄 Sync Parameters to Fabric Developer Workflow Application

Automatically sync your local environment variables to Null Platform using the make params command. This eliminates manual configuration in the Fabric dashboard.

Prerequisites

  1. Install Fabric Developer Journey CLI from Null Platform:
    npm install -g @nullplatform/cli
  2. Get your API Key:
    Go to your App Dashboard from Fabric Workspace → Click user profile icon → Click "Copy personal access token"
  3. Export the API Key:
    export NP_TOKEN=<your-token>
  4. Get and Add App NRN to .env:
    1. Go to your Application Dashboard
    2. Click the NRN button to copy your application's NRN
    3. Add it to your .env file:
    APP_NRN=organization=1234567890:account=9876543210:namespace=1122334455:application=5544332211

Run the Command

Once prerequisites are met, run this command in your terminal:

Terminal Command
# Basic usage (reads APP_NRN from .env)
make params

# Or specify NRN directly (use your NRN copied from Application Dashboard)
# Option 1: Using NRN variable (cleanest syntax)
make params NRN=organization=1234567890:account=9876543210:namespace=1122334455:application=5544332211

# Option 2: Using ARGS variable
make params ARGS="--nrn organization=1234567890:account=9876543210:namespace=1122334455:application=5544332211"

# Option 3: Call script directly
./scripts/configure-parameters.sh --nrn organization=1234567890:account=9876543210:namespace=1122334455:application=5544332211
🔒 Secret Parameters
These parameters are automatically marked as secrets: LLM_KEY, EMBEDDING_API_KEY, DB_PASSWORD, PG_PASSWORD, SECURITY_SECRET_KEY, NP_TOKEN