Foundry is a free, open source ai development platforms project written in Python and released under Apache-2.0. It has 872 GitHub stars, 129 forks and 5 open issues, and was last pushed 28 days ago. On this registry it ranks #59 of 61 tracked projects in AI Development Platforms, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is Foundry?

Foundry is a Python, Apache-2.0 licensed agentic engineering framework from Promptise that gives developers one install for building AI agents, the tools they call, the reasoning they follow, and the governed runtime that serves them to customers.

What it is

Foundry is a full-stack framework for building AI agents. Its README describes it as one framework rather than a collection of libraries: the agent, the tools the agent uses, the reasoning engine that decides how the agent thinks, the runtime that keeps it running, and the security and governance layer needed to put it in front of paying customers all ship in the same package. The install is published to PyPI as promptise, and the framework lives in the Python ecosystem alongside the model SDKs and agent libraries it absorbs.

The concrete problem it solves is assembly cost. A typical agent stack is built by hand from a model SDK, a tool layer, a vector database, authentication, guardrails, a job runner, and logging, all glued together and kept alive by the team that wrote it. Foundry replaces that hand-assembled stack with a single framework where memory, security, multi-tenancy, human approvals, runtime, and observability are already present and each switched on with a parameter. The stated payoff is that a prototype can become something shippable without rebuilding the production layer, and that the same install which runs one agent on a laptop can run a fleet serving real users.

Key capabilities

  • build_agent() turns any supported model into a working agent and discovers tools on its own from connected MCP servers, configured through HTTPServerSpec(url="http://localhost:8000/mcp").
  • Persistent memory via ChromaProvider(persist_directory="./memory"), searched before every reply.
  • PromptiseSecurityScanner.default() blocks prompt injection and redacts PII, enabled as a single guardrails parameter.
  • SemanticCache() serves similar queries from cache instead of re-invoking the model.
  • A reasoning engine that lays out agent thinking as a readable graph, with seven presets covering research, debate, plan-act-reflect, one-shot self-verify, and write-one-program shapes.
  • An MCP Server SDK where @server.tool() turns a plain Python function into an MCP tool whose schema is derived from type hints, with authentication, per-tool permissions, rate limits, circuit breakers, and tamper-evident audit logs.
  • Provider-agnostic model support across OpenAI, Anthropic, Gemini, a local model via Ollama, and anything built on LangChain, plus observe=True tracing of every step.

Who uses it and how

  • Teams moving an agent prototype toward paying customers who would otherwise rebuild the production layer, because multi-tenancy, approvals, and observability are already inside.
  • Multi-tenant product builders who need governed, secure, observable agent fleets rather than a single laptop agent.
  • Tool authors who write one Python function with @server.tool() and reuse it across Foundry agents as well as Claude Desktop, Cursor, and other MCP clients.
  • Teams with mixed or local model requirements, since the same code path serves hosted providers and a local model through Ollama.
  • Developers who want to control agent reasoning explicitly through graph presets rather than accepting an opaque tool loop, for example research or debate shapes.

Getting started

Install with pip install promptise, then call build_agent() with a model string such as openai:gpt-5-mini and pass the optional parameters for memory, guardrails, cache, and tracing. Documentation, a quick start, and a blog are linked from the project homepage at promptise.com.

How it compares

No list of paid products this project replaces is provided in the facts. Among the tools the facts name, LangChain is positioned as something Foundry builds on rather than competes with, since models built on LangChain work inside Foundry, while MCP clients such as Claude Desktop and Cursor are the other half of the tool story: a tool written once for Foundry's MCP Server SDK works in those clients too. The contrast the README draws is therefore against a hand-assembled stack of separate libraries, not against a single named competitor.

When to use it — and when not to

A self-hoster still operates the pieces the framework does not host: the vector store behind ChromaProvider, the MCP tool servers the agent connects to over HTTP, and credentials for whichever model provider is chosen, whether that is a hosted API or a local Ollama instance. Anyone whose needs are a thin wrapper around one model call should not adopt something that bundles a runtime, security layer, and governance model they will not use. The honest caveat is maturity: with 872 stars and 129 forks, Foundry is early in its adoption curve despite claiming coverage of the full production stack, so teams should weigh that against the framework's breadth before standardising on it.

project readme (upstream, from github) — read inline

Promptise Foundry

The first full-stack Agentic Engineering framework.

Build agents and the tools they use. Design how they reason. Run them as autonomous, governed systems.
Ship them to real customers — multi-tenant, secure, and observable. One framework, not a dozen libraries.


Stars PyPI Python Downloads CI Last commit License Docs

Async Typed Security MCP Tests


Website  ·  Documentation  ·  Quick Start  ·  Blog  ·  Discussions




What Promptise is

Promptise is one framework for the whole job of building with AI agents — the agents, the tools they use, the reasoning behind them, the runtime that keeps them running, and the security and governance to put them in front of customers. Not a single feature, but the full stack you'd otherwise assemble from a dozen separate libraries.

Most agent stacks are assembled by hand: a model SDK, a tool layer, a vector database, auth, guardrails, a job runner, logging — glued together and kept alive by you. Promptise pulls all of it into one framework. build_agent() and a Python decorator give you the agent and its tools; memory, security, multi-tenancy, human approvals, a runtime, and observability are already inside, each switched on with a parameter.

The impact: you build what your agent does, not the ten libraries underneath it. A prototype becomes something you can put in front of paying customers without rebuilding the production layer each time — and the same install that runs one agent on your laptop runs a fleet serving real users.


 


Get started in 30 seconds


pip install promptise
import asyncio
from promptise import build_agent, PromptiseSecurityScanner, SemanticCache
from promptise.config import HTTPServerSpec
from promptise.memory import ChromaProvider

async def main():
    agent = await build_agent(
        model="openai:gpt-5-mini",
        servers={
            "tools": HTTPServerSpec(url="http://localhost:8000/mcp"),
        },
        instructions="You are a helpful assistant.",
        memory=ChromaProvider(persist_directory="./memory"),  # remembers across calls
        guardrails=PromptiseSecurityScanner.default(),          # blocks injection, redacts PII
        cache=SemanticCache(),                                  # serves similar queries instantly
        observe=True,                                           # traces every step
    )

    result = await agent.ainvoke({
        "messages": [{"role": "user", "content": "What's the status of our pipeline?"}]
    })
    print(result["messages"][-1].content)
    await agent.shutdown()

asyncio.run(main())

One call. The agent finds its tools on the MCP server on its own. Memory, guardrails, cache, and tracing are each a single line —
and the ones you don't pass cost you nothing. Works with OpenAI, Anthropic, Gemini, or a local model via Ollama.

 


The five parts of the framework

Each replaces a stack of libraries you'd otherwise wire together yourself.



01

🤖

Agent

One function turns any model into a working agent.

build_agent() connects to your tool servers, discovers the tools on its own, and gives the agent what it needs to be useful in practice: memory that's searched before every reply, a security scanner that blocks prompt injection and redacts PII, response caching, sandboxed code execution, and full tracing. Each is one parameter. Any model — OpenAI, Anthropic, Gemini, a local model, or anything built on LangChain.

Agent docs →



02

🧠

Reasoning Engine

Decide how the agent thinks — or use a preset.

Most tasks run fine on the default tool loop. When you need more control, lay out the agent's reasoning as a graph you can read and change: think, use tools, check its own answer, then respond. Seven presets cover common shapes — research, debate, plan-act-reflect, one-shot self-verify, write-one-program — and you build your own when none fit. No black box.

Reasoning docs →



03

🔧

MCP Server SDK

Build a tool once; every agent can use it.

Write a Python function, add @server.tool(), and it becomes an MCP tool with a schema taken straight from your type hints. The same tool works with Promptise agents and with Claude Desktop, Cursor, and any other MCP client. It comes with authentication, per-tool permissions, rate limits, circuit breakers, tamper-evident audit logs, a background job queue, and a test client that runs the whole request path without a network.

MCP docs →



04

Agent Runtime

Keep agents running, on budget, and recoverable.

Turn an agent into a long-running process that wakes on a schedule, a webhook, or a file change. It writes down every step, so a crash resumes from where it stopped instead of starting over. Set limits on tool calls and spend, watch for stuck or looping behavior, and require a human when it hits something risky. Run one, or a fleet across machines.

Runtime docs →



05

Prompt Engineering

Prompts you can version and test, not strings you paste.

Assemble a system prompt from typed blocks with a token budget, let it change across the phases of a conversation, and check it with the same kind of tools you use for code. Version prompts, roll back a bad one, and trace exactly how each was built — so a prompt change is a reviewable diff, not a mystery.

Prompts docs →


 

<br/

readme truncated — read the full docs on github

Frequently asked questions

Is Foundry free to use?

Foundry is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Foundry do?

The foundation layer for agentic intelligence.

What is Foundry written in?

Foundry is primarily written in Python. Its source is publicly available at https://github.com/promptise-com/Foundry, and it has 872 GitHub stars.