Observed since 20 Oct, 21:58 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Typed framework for declaring and running agentic systems
Agent Foundry is a typed, boundary-enforced framework for declaring and running agentic systems. Builders compose processes from declared constructs, validate state boundaries, and run them through adapter seams for workflow engines, agent harnesses, model providers, tools, and observability backends.
Current Targets Audience and Use Case
Those seams are the long-term portability strategy. The adapter ecosystem is still a work in progress: Agent Foundry provides the core abstractions and initial integrations, while broader backend and provider support still needs to be built and validated.
Status: alpha. Agent Foundry is pre-1.0 and APIs may change. License: Apache-2.0. See LICENSE.
Agentic systems are still early. Teams are learning which instructions work, how memory should be managed, what topology fits a use case, which models are worth their cost, where humans should stay in the loop, and how agent behavior should be evaluated.
Agent Foundry is for running those experiments without rebuilding the whole system each time. It keeps the durable shape of an agentic system stable while the volatile parts change: prompts, models, tools, memory strategies, agent harnesses, execution backends, and observability systems.
The core idea is simple: process state crosses construct boundaries through declared Pydantic models. The framework validates those boundaries before and during execution so dynamic agent behavior has an inspectable process frame.
A process is a tree of typed constructs.
Control-flow constructs shape the process:
Action constructs do work at the leaves:
Each construct declares the Pydantic input model it reads and the output model it returns. Composite constructs accumulate internal state and choose which typed fields leave their scope.
from pydantic import BaseModel
from agent_foundry import FunctionAction, Process, Sequence
class DraftInput(BaseModel):
topic: str
class DraftState(BaseModel):
topic: str
outline: str
class DraftOutput(BaseModel):
topic: str
outline: str
title: str
def outline(state: DraftInput) -> DraftState:
return DraftState(topic=state.topic, outline=f"Notes about {state.topic}")
def title(state: DraftState) -> DraftOutput:
return DraftOutput(
topic=state.topic,
outline=state.outline,
title=f"Understanding {state.topic}",
)
process = Process(
root=Sequence[DraftInput, DraftOutput](
steps=[
FunctionAction[DraftInput, DraftState](function=outline),
FunctionAction[DraftState, DraftOutput](function=title),
]
)
)
process.validate()
process.validate() checks that the declared state fields line up across the
construct tree. run_process(...) executes the process and returns a typed
RunOutcome; see Getting started for a full
runnable example.
Agent Foundry currently includes:
The goal is to make more of these choices replaceable over time. New adapters should preserve Agent Foundry's process, state, error, lifecycle, and output semantics, ideally through shared contract tests.
pip install agent-foundry-ai
pip install agent-foundry-ai[mlflow] # optional MLflow adapter
Requires Python 3.14.
| Area | Where |
|---|---|
| Getting started | docs/guides/getting-started.md |
| Agent containers | docs/guides/agent-containers.md |
| Extending Agent Foundry | docs/guides/extending.md |
| Vision | docs/vision.md |
| Architecture | docs/architecture/ |
| Design docs | docs/design/ |
| Reference | docs/reference/ |
| Contributing | CONTRIBUTING.md |
Agent Foundry is not:
MIT. See LICENSE.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.12.0 | 19 Jul 2026 | 17 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 21:58 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1c7758529f417b228b8a1720cf1bc41951bc8178ba7b6900bfdbcf50deb45d20