![]() |
VOOZH | about |
dotnet add package Ananke.Federation --version 0.8.5
NuGet\Install-Package Ananke.Federation -Version 0.8.5
<PackageReference Include="Ananke.Federation" Version="0.8.5" />
<PackageVersion Include="Ananke.Federation" Version="0.8.5" />Directory.Packages.props
<PackageReference Include="Ananke.Federation" />Project file
paket add Ananke.Federation --version 0.8.5
#r "nuget: Ananke.Federation, 0.8.5"
#:package Ananke.Federation@0.8.5
#addin nuget:?package=Ananke.Federation&version=0.8.5Install as a Cake Addin
#tool nuget:?package=Ananke.Federation&version=0.8.5Install as a Cake Tool
Federation hub for Ananke. Provides the core abstractions, default implementations,
and shared infrastructure that platform adapters (Ananke.Federation.Azure,
Ananke.Federation.Google, Ananke.Federation.Anthropic) are built on.
Also ships the local design loop infrastructure — run and test workflows that
declare ToolExecutionMode.PlatformNative capabilities on your developer machine
or in CI without credentials. See Local design loop below,
and
for the full emulator catalogue.
| Area | Key types |
|---|---|
| Deployment | IFederationDeployer, IDeploymentRegistry, InMemoryDeploymentRegistry, LocalFederationDeployer, DeploymentRecord, DeploymentProfile, DeployOptions |
| Validation | IDeployabilityValidator, DeployabilityValidator, IPlatformValidator, LocalPlatformValidator, IModelMapper, DeployabilityReport, DeployDiagnostic |
| Execution | IPlatformNativeExecutor, PlatformNativeExecutorRegistry |
| Monitoring | IRemoteCellMonitor, RemoteCellMetrics, RemoteCellHealth, MetricsSample, RemoteCellTrend, RemoteMetricsTracker |
| Hosting | FederatedComplexityMonitor, FederatedWorkflowHost, HybridRouter |
| Division | FederatedDivisionPolicy, PlatformDivisionApprovalGate |
| Prompts | ISystemPromptCompiler, ManifestSystemPromptCompiler |
| Credentials | IFederationCredentialProvider |
Federation follows the supervisor-only hybrid model:
OrganicHost supervises all cells (local and remote) through FederatedComplexityMonitor.FederatedDivisionPolicy wraps an inner IDivisionPolicy and sets TargetPlatform on child specs.PlatformDivisionApprovalGate always requires human oversight before any cross-boundary deployment.RemoteMetricsTracker emits OTEL gauges via the Ananke.Federation meter name.// 1. Validate a manifest against a target platform
var validator = new DeployabilityValidator();
DeployabilityReport report = await validator.ValidateAsync(manifest, "azure-ai");
if (report.HasErrors) { /* handle */ }
// 2. Deploy (via a platform adapter)
var deployer = new AzureAgentDeployer(credentials, registry);
DeploymentRecord record = await deployer.DeployAsync(manifest, toolKit, options);
// 3. Wrap your local monitor for federated complexity tracking
var monitor = new FederatedComplexityMonitor(
localMonitor: myLocalMonitor,
registry: registry,
remoteMonitors: [new AzureRemoteCellMonitor()],
metricsTracker: metricsTracker);
// 4. Use the nnke-platform CLI for day-2 operations
// nnke-platform validate manifest.ananke.yml
// nnke-platform deploy manifest.ananke.yml
// nnke-platform trends --deployment-id <id>
// nnke-platform analyze manifest.ananke.yml --deployment-id <id>
Workflows that target a managed platform can be authored, executed, and tested locally before any deployment. This enables offline authoring, CI without credentials, and fast iteration on platform-native capability usage.
ToolExecutionMode.PlatformNative.Ananke.Federation.LocalEmulators:using Ananke.Federation.Execution;
using Ananke.Federation.LocalEmulators;
var registry = new PlatformNativeExecutorRegistry();
DefaultPlatformNativeExecutors.Register(registry);
// Patch a ToolKit so platform-native tools execute locally
registry.ApplyTo(toolKit, platform: "azure-ai");
LocalFederationDeployer — no network, no credentials:var deployer = new LocalFederationDeployer(new InMemoryDeploymentRegistry());
var record = await deployer.DeployAsync(manifest, toolKit, new DeployOptions { Platform = "local" });
// record.Platform == "local", record.Status == DeploymentStatus.Active
LocalPlatformValidator:var validator = new LocalPlatformValidator(registry, new DeployabilityValidator());
var report = await validator.ValidateAsync(manifest, toolKit, "local-emulated:azure-ai");
// FED061 — capability declared but no executor registered
// FED062 — capability is covered by a stub (deterministic, not real)
HybridRouter supports three routing targets:
| Target | Meaning |
|---|---|
"local" |
Run entirely in-process on the local machine |
"azure-ai" / "vertex-ai" / "claude" |
Deploy to the named managed platform |
"local-emulated:azure-ai" |
Run locally through registered emulators, simulating the named platform |
// Pin a cell to local emulation of Foundry
var rule = RoutingRule.EmulateAll("foundry"); // target: "local-emulated:azure-ai"
The post-May-2026 platform names are accepted everywhere:
| Alias | Resolves to | Diagnostic |
|---|---|---|
foundry |
azure-ai |
FED060 (warning) |
gemini-enterprise |
vertex-ai |
FED060 (warning) |
Existing manifests authored with azure-ai / vertex-ai continue to work unchanged.
| Code | Severity | Meaning |
|---|---|---|
FED060 |
Warning | Platform identifier alias resolved (e.g. foundry → azure-ai) |
FED061 |
Error | PlatformNative capability declared but no executor registered for local target |
FED062 |
Warning | Capability is covered by a stub — results are deterministic, not real |
A DeploymentProfile describes a named target environment and rebinds tools for
platform-native execution. Profiles are declared in .ananke.yml under profiles:
and parsed by the Ananke.Design manifest parser.
profiles:
- id: prod-azure
platform: azure-ai
tools:
- name: web_search
binding: bing_grounding
RemoteMetricsTracker emits observable gauge measurements. Add the meter to your
OpenTelemetry pipeline to export trends to Prometheus, Grafana, or any OTLP backend:
builder.AddMeter(RemoteMetricsTracker.MeterName); // "Ananke.Federation"
Platform credentials are never stored in manifests. See
for the full credentials matrix: credential types, required scopes, rotation procedures,
and per-platform IFederationCredentialProvider implementation status.
Before each release, update the platform capabilities list in :
Azure.AI.Projects.Agents SDK for new
tool types (*Tool classes). The SDK changelog and
Azure AI Agent Service docs
list newly GA'd capabilities.Google.Cloud.AIPlatform.V1 SDK and
Vertex AI Agent Engine docs
for new tool types.The JSON file is embedded as a resource and loaded by DeployabilityValidator at
startup. Unknown capabilities produce a warning (FED003), not an error — the
platform API validates at deploy time. This list only improves pre-deploy DX.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 4 NuGet packages that depend on Ananke.Federation:
| Package | Downloads |
|---|---|
|
Ananke.Federation.Google
Gemini Enterprise Agent Platform adapter for Ananke Federation — deploy workflows to Agent Runtime, monitor agents via Agent Observability, and translate manifests to Gemini-native configuration. |
|
|
Ananke.Federation.Anthropic
Anthropic Claude Managed Agents adapter for Ananke Federation — deploy workflows to Claude, monitor managed agents, and translate manifests to Claude-native configuration. |
|
|
Ananke.Federation.Azure
Azure AI Agent Service adapter for Ananke Federation — deploy workflows to Azure AI Foundry, monitor platform agents, and translate manifests to Assistants API configuration. |
|
|
Ananke.Federation.LocalEmulators
Local emulators for Ananke Federation platform-native capabilities — enables the local design loop (bash, web_search, web_fetch, file_search, memory, code_execution, and more) without deploying to a managed agent platform. |
This package is not used by any popular GitHub repositories.