Skip to Content

Stable API Boundary

Aether Forge exposes an explicitly labeled top-level Python API. Every symbol in aether_forge.__all__ has a stability label in aether_forge.API_STABILITY.

import aether_forge assert aether_forge.API_STABILITY["Planner"] == "stable"

Stable

Stable APIs are intended for application code and third-party extensions. They can still gain optional fields or methods before 1.0, but incompatible changes require a migration note.

SurfaceSymbols
FacadeForge, ForgeProject
Extension contractsPlanner, ExecutionRouter, PlanningModel, MemoryStore, DataSource
Artifact validationvalidate_artifact_directory, LoadedArtifact
Fast generationFastGenerateRequest, generate_fast_artifact_set, GeneratedArtifactSet
RuntimeRuntimeSession, AgentRunner, RunnerConfig, ArtifactBundle, StepProposal, ExecutionResult, RuntimeReplay
PolicyNativePolicyGate, PolicyDecision
MemoryMemoryRecord, MemoryQuery, MemoryPromotionRequest, MemoryPromotionResult, MemoryPromotionPolicy, InMemoryMemoryStore, SqliteMemoryStore
Planner/model adaptersHeuristicPlanner, PromptDrivenPlanner, StaticPlanningModel, OpenAICompatiblePlanningModel, AnthropicPlanningModel, GeminiPlanningModel
Data layerDataRouter, DataResult, DataSourceCost, HTTPDataSource, WebSocketDataSource, McpDataSource, MockDataSource
Evaluation/versioningevaluate_scenario_pack, build_promotion_evidence, SemanticVersion, assess_artifact_set_compatibility
ExceptionsForgeError, ValidationError, PolicyError, PolicyDeniedError, CryptoError, SecurityError, ProviderError, ConfigError

Experimental

Experimental APIs are usable, but the contract is still being refined. Pin versions and read changelogs before depending on them in production.

SurfaceExamples
Slow generation and autoresearchSlowGenerateRequest, SlowGenerateResult, generate_slow_artifact_set
x402 live payment client/data sourceX402Client, X402Config, PaymentRequirement, X402DataSource
Skills and registriessearch_skills, install_skill_to_project, SkillInfo, InstalledSkill
Market data helpersMarketDataRouter, MarketDataVenue, BinanceVenue, CoinGeckoVenue
Usage accountingUsageTracker, TokenUsage, estimate_session_cost
Observability hooksObservabilityEvent, EventSink, ListEventSink, LoggingEventSink, JsonlEventSink, CompositeEventSink

Internal

Internal exports exist only for compatibility with early adopters or generated artifacts. Prefer their documented higher-level surfaces instead.

SurfaceExamples
Low-level HTTP helpershttp_get_json, http_post_json, RetryPolicy, HttpError
Generated scaffold loader internalsStrategyConfig, load_scaffold_router

Extension Protocols

The five extension contracts are exported from the top-level package and have docstrings that include the canonical signature, minimum implementation, and reference implementation pointer.

from aether_forge import Planner, ExecutionRouter, PlanningModel, MemoryStore, DataSource print(Planner.__doc__)

Plugin discovery uses importlib.metadata entry points in these groups:

GroupTarget
aether_forge.plannersZero-argument factory returning a Planner
aether_forge.execution_routersFactory returning an ExecutionRouter
aether_forge.data_sourcesDataSource subclass or factory
aether_forge.skill_registriesRegistry URL string or callable returning one

Plugin imports that raise are logged at WARNING and skipped; third-party plugin failures must not crash framework startup.

TypeScript Boundary

@aether-forge/sdk mirrors the schema and protocol boundary for JavaScript and TypeScript consumers. It includes generated JSON-schema types, Ajv validators, parsePlannerOutput, and interface-only Protocol shapes.

The Python runtime remains authoritative for agent execution in v0.1.x of the SDK. AgentRunner, NativePolicyGate, memory store implementations, autoresearch, and signer reference implementations are intentionally Python-only until cross-language usage justifies a port.

See TypeScript SDK for install, validation, and planner-output examples.

Last updated on