Skip to main content

Stateful coordination layer for multi-agent AI systems

Project description

AgentStateLib

AgentStateLib is a Python library for building reliable multi-agent workflows. It gives multiple agents a shared, typed state and a simple graph router, so you can coordinate them without passing raw strings around. [file:1]

Installation

pip install agentstate-lib

Quick start

import asyncio
from agentstatelib import SharedState, AgentGraph, StatePatch

graph = AgentGraph()

@graph.node("planner", context=["goal"])
async def planner(context: dict) -> StatePatch:
    goal = context["goal"]
    return StatePatch(
        agent_id="planner",
        target="facts.planned",
        value=True,
        reason=f"planned goal: {goal!r}",
    )

@graph.node("summarizer", context=["facts.planned", "goal"])
async def summarizer(context: dict) -> StatePatch:
    planned = context.get("facts", {}).get("planned")
    goal = context.get("goal")
    summary = f"Workflow for goal {goal!r} planned={planned}"
    return StatePatch(
        agent_id="summarizer",
        target="facts.summary",
        value=summary,
        reason="add summary",
    )

graph.edge(
    "planner",
    "summarizer",
    condition=lambda s: s.get("facts", {}).get("planned") is True,
)

async def main() -> None:
    state = SharedState(goal="Write a multi-agent blog post")
    final_state = await graph.run(state, start="planner")
    print(final_state.facts)

if __name__ == "__main__":
    asyncio.run(main())

Core ideas

  • SharedState: a Pydantic model that holds the workflow’s goal, tasks, artifacts, decisions, and facts.
  • StatePatch: what agents return. A structured change like “set facts.planned = True”.
  • AgentGraph: runs agents as a directed graph. Each agent is just an async function that receives a small context dict and returns a StatePatch.
  • Context slicing: each agent declares which paths it needs (e.g. ["goal", "facts.planned"]), and only sees that subset of the state.
  • Event store: every applied patch is recorded as an event in a pluggable store (in-memory or SQLite), so you can replay or debug workflows. [file:1]

Status

Version 0.1.2 is an early preview:

  • SharedState data model
  • StatePatch + apply_patch
  • AgentGraph with decorator API
  • InMemory and SQLite event stores

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

agentstate_lib-0.2.0.tar.gz (149.2 kB view details)

Uploaded Source

Built Distribution

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

agentstate_lib-0.2.0-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file agentstate_lib-0.2.0.tar.gz.

File metadata

  • Download URL: agentstate_lib-0.2.0.tar.gz
  • Upload date:
  • Size: 149.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for agentstate_lib-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7318b79a60146f3762ce016417daceece42326e7a51749cbec52c0b5508b05ca
MD5 cd8a18608a609f35b5da2c5758e84506
BLAKE2b-256 8fef0f6ec3ffd27d7db02101cc0323afd2857dff1fcae3d2724169a455ceee5d

See more details on using hashes here.

File details

Details for the file agentstate_lib-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: agentstate_lib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for agentstate_lib-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab851748ccaa71b36135259ec1aaa70e47240abdad42345648193123ccf24363
MD5 5dc23225e8ded0618a231c003f918995
BLAKE2b-256 fb57ba1cb9336d0b488f3779dd00f82433d38652bf9ea2768fe6dc07ab8a2d55

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