Skip to main content

Durable execution of Pydantic AI agents on Postgres via Absurd.

Project description

Pydantic AI Absurd

Durable execution for Pydantic AI agents, on Postgres alone.


Agents run for a while - a model call, a tool call, another model call. When the worker dies in the middle of that, the run is usually lost: you restart from zero and pay for every token again.

Pydantic AI Absurd fixes that. Call agent.run() inside a durable task and every model and MCP call is checkpointed into Postgres. If the worker crashes, a new one resumes from the last completed step - no restart, no re-spent tokens. Same idea as Pydantic AI's Temporal integration, but with no Temporal, no Redis, no broker: just the Postgres you already have.

Installation

pip install pydantic-ai-absurd

Example

from absurd_sdk import AsyncAbsurd
from pydantic_ai import Agent
from pydantic_ai_absurd import AbsurdAgent

absurd = AsyncAbsurd("postgresql://localhost/absurd", queue_name="agents")
agent = AbsurdAgent(Agent("openai:gpt-5.2", name="analyst"), absurd)

@absurd.register_task(name="analyse")
async def analyse(params, ctx):
    result = await agent.run(params["prompt"])
    return {"output": result.output}

await absurd.spawn("analyse", {"prompt": "Analyse Q3 revenue"})
await absurd.work_batch(batch_size=1)

You author a task, call the agent inside it, and run it durably. That's the whole idea.

Documentation

Read the docs at kludex.github.io/pydantic-ai-absurd - a step-by-step tutorial, how durability actually works, tools and MCP servers, and a production guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_ai_absurd-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_ai_absurd-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_ai_absurd-0.1.0.tar.gz.

File metadata

  • Download URL: pydantic_ai_absurd-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.12 {"installer":{"name":"uv","version":"0.9.12"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pydantic_ai_absurd-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2291c7ab4c43a3ed50289e7132f98d01172411f67167991aa7073f69c537cbca
MD5 d33f2965dfbd868af200201fb1ef8a9d
BLAKE2b-256 86c81c81ec6646bcd48c63bc14908d2d18dce00cad90bdd9cba375513d18f653

See more details on using hashes here.

File details

Details for the file pydantic_ai_absurd-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydantic_ai_absurd-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.12 {"installer":{"name":"uv","version":"0.9.12"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pydantic_ai_absurd-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 30d31412a8b9b9f7cd38a3c3fff65355c1ec258556c3d4fcd6706935f4022b53
MD5 684c6455c891a44c5ef502ee50eda7ad
BLAKE2b-256 5389636af6780b880223b047cc206642ba4bc66c4595cc26d19f96453170b094

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page