Agent NoCode (.NET)
Built with ASP.NET Core 9.0 & Microsoft Agent Framework
A2A Protocol v0.3.0 Compliant Server
Built with C# and powered by the Microsoft Agent Framework, this agent enables seamless agent-to-agent communication using the standardized A2A protocol. Implemented with ASP.NET Core 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.
API Endpoints & Documentation
Explore the A2A protocol endpoints, agent cards, and workflow orchestration APIs.
Agent NoCode (.NET) 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 agent via the A2A protocol. The agent will return a task ID that you can use to check the status and results.
curl -X POST [Loading...]/invoke \
-H "Content-Type: application/json" \
-d '{"input": {"message": "Explain quantum computing in simple terms"}}'
{
"task_id": "abc-123...",
"task_url": "[Loading...]/tasks/abc-123...",
"status": {"state": "running"}
}
Next Step: Click or curl the task_url to check status and get results.
Configuration Guide
Configure the agent with LLM, database, and authentication settings.
Required Environment Variables
Configure these parameters to enable full agent functionality:
| Parameter | Required | Default | Description |
|---|---|---|---|
| Agent Configuration | |||
AGENT_ID |
Required | "" |
Unique agent identifier (same as DB Agent Id) |
AGENT_NAME |
Optional | "" |
Human-readable agent name |
AGENT_DESCRIPTION |
Optional | "" |
Agent description |
| LLM Configuration | |||
LLM_PROVIDER |
Optional | "" |
LLM provider (e.g., azure, openai) |
LLM_ENDPOINT |
Required | "" |
LLM endpoint URL (e.g., https://your-resource.openai.azure.com/) |
LLM_MODEL |
Optional | "" |
LLM model name |
LLM_KEY |
Required | "" |
LLM API key for authentication |
LLM_API_VERSION |
Optional | "" |
LLM API version |
LLM_TEMPERATURE |
Optional | 0.0 |
LLM temperature setting |
LLM_MAX_TOKENS |
Optional | 1000 |
Maximum tokens for LLM responses |
| Embeddings Configuration | |||
EMBED_PROVIDER |
Optional | "" |
Embedding provider (falls back to LLM provider) |
EMBED_MODEL |
Optional | "" |
Embedding model name |
EMBED_API_VERSION |
Optional | "" |
Embedding API version |
| PostgreSQL (pgvector) Configuration | |||
PGHOST |
Optional | "" |
PostgreSQL database host |
PGPORT |
Optional | "" |
PostgreSQL database port |
POSTGRES_USER |
Optional | "" |
PostgreSQL database username |
POSTGRES_PASSWORD |
Optional | "" |
PostgreSQL database password |
| Authentication Configuration (AUTH_* Environment Variables) | |||
AUTH_ENABLED |
Optional | true |
Enable/disable JWT authentication (default: true) |
AUTH_AUTHORITY |
Required | "" |
OAuth 2.0 authority URL (e.g., https://login.microsoftonline.com/{tenant}) |
AUTH_ISSUER |
Optional | AUTH_AUTHORITY |
Expected issuer claim in JWT tokens (defaults to AUTH_AUTHORITY) |
AUTH_TENANT_ID |
Optional | "" |
Azure AD tenant ID |
AUTH_CLIENT_ID |
Required | "" |
Application client ID (also used as audience) |
AUTH_REDIRECT_URI |
Optional | "" |
OAuth callback/redirect URI |
AUTH_LOGIN_SCOPES |
Optional | "" |
User login scopes (comma-separated, e.g., User.Read,profile) |
AUTH_API_SCOPES |
Optional | "" |
API access scopes (comma-separated) |
AUTH_VALIDATE_ISSUER |
Optional | true |
Validate token issuer (default: true) |
AUTH_VALIDATE_AUDIENCE |
Optional | true |
Validate token audience (default: true) |
AUTH_VALIDATE_SIGNING_KEY |
Optional | true |
Validate token signing key (default: true) |
AUTH_VALIDATE_LIFETIME |
Optional | true |
Validate token lifetime (default: true) |
AUTH_LIFETIME_SKEW |
Optional | 300 |
Clock skew tolerance in seconds (default: 300 = 5 minutes) |
| A2A Configuration | |||
AUTOGEN_AGENT_A2A_URL |
Optional | http://localhost:8001 |
Default A2A agent URL |
| Context & Tools Configuration | |||
CONTEXTS |
Optional | [] |
JSON array of context configurations |
TOOL_SERVERS |
Optional | [] |
JSON array of MCP tool server URLs |
| Logging Configuration | |||
LOG_LEVEL |
Optional | INFO |
Logging level (DEBUG, INFO, WARNING, ERROR) |
Example Configuration
# Agent Configuration AGENT_ID=my-agent-id AGENT_NAME=My AI Agent AGENT_DESCRIPTION=An intelligent AI agent # LLM Configuration LLM_PROVIDER=azure LLM_ENDPOINT=https://your-resource.openai.azure.com/ LLM_MODEL=gpt-4o LLM_KEY=your-api-key-here LLM_API_VERSION=2024-02-15-preview LLM_TEMPERATURE=0.0 LLM_MAX_TOKENS=1000 # Embeddings Configuration (Optional) EMBED_PROVIDER=azure EMBED_MODEL=text-embedding-ada-002 EMBED_API_VERSION=2024-02-15-preview # PostgreSQL Configuration PGHOST=localhost PGPORT=5432 POSTGRES_USER=postgres POSTGRES_PASSWORD=your-password-here # Authentication Configuration (AUTH_* Environment Variables) AUTH_ENABLED=true AUTH_AUTHORITY=https://login.microsoftonline.com/your-tenant-id AUTH_ISSUER=https://sts.windows.net/your-tenant-id/ AUTH_TENANT_ID=your-tenant-id AUTH_CLIENT_ID=your-client-id AUTH_REDIRECT_URI=http://localhost:5017 AUTH_LOGIN_SCOPES=User.Read,profile AUTH_API_SCOPES=api://your-client-id/.default AUTH_VALIDATE_ISSUER=true AUTH_VALIDATE_AUDIENCE=true AUTH_VALIDATE_SIGNING_KEY=true AUTH_VALIDATE_LIFETIME=true AUTH_LIFETIME_SKEW=300 # A2A Configuration AUTOGEN_AGENT_A2A_URL="http://localhost:8001" # Context & Tools CONTEXTS="[]" TOOL_SERVERS='["http://0.0.0.0:9001/analytics/mcp/"]' # Logging LOG_LEVEL=INFO
Sync Parameters to Fabric Developer Workflow Application
Automatically sync your local environment variables to Fabric Developer Workflow Application using the make params command.
This eliminates manual configuration in the Application Dashboard.
Prerequisites
-
Install Fabric Developer Journey CLI from Null Platform:
npm install -g @nullplatform/cli
-
Get your API Key:
Go to your App Dashboard from Fabric Workspace → Click user profile icon → Click "Copy personal access token" -
Export the API Key:
export NP_TOKEN=<your-token>
-
Get your App NRN (Null Resource Name):
- Go to your Application Dashboard
- Click the NRN button to copy your application's NRN
- You'll use this NRN when running the
make paramscommand
# Format: organization=ID:account=ID:namespace=ID:application=ID # Example: organization=1234567890:account=9876543210:namespace=1122334455:application=5544332211
Run the Command
Once prerequisites are met, run this command in your terminal:
# Use your NRN copied from Application Dashboard # Option 1: Using NRN variable (recommended) 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
These parameters are automatically marked as secrets:
LLM_KEY,
POSTGRES_PASSWORD, JWT_AUDIENCE, NP_TOKEN