Observed since 20 Oct, 23:28 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentspype
A framework for building agents that interact with the world
A Python framework for building event-driven agents with finite state machines. AgentsPype combines declarative state machine definitions with typed pub/sub communication, built-in visualization, and a CLI runner for orchestrating agent lifecycles.
Agency for tracking active agents and resolving agent classes by name# Using pip
pip install agentspype
# Using uv
uv add agentspype
Optional extras:
# Clock support
uv add agentspype[clock]
# Interactive configuration wizard
uv add agentspype[wizard]
# Service mode
uv add agentspype[service]
# All extras
uv add agentspype[all]
from agentspype.agent import Agent, AgentDefinition
from agentspype.agent.state_machine import BasicAgentStateMachine
from agentspype.agent.configuration import AgentConfiguration
from agentspype.agent.listening import AgentListening
from agentspype.agent.publishing import AgentPublishing
from agentspype.agent.status import AgentStatus
class MyAgent(Agent):
definition = AgentDefinition(
state_machine_class=BasicAgentStateMachine,
configuration_class=AgentConfiguration,
listening_class=AgentListening,
publishing_class=AgentPublishing,
status_class=AgentStatus,
)
agent = MyAgent(AgentConfiguration(name="my-agent"))
agent.start()
print(agent.state_machine.current_state)
agent.stop()
Agent: Base class with lifecycle management, configuration, state machine, and event wiring
AgentDefinition: Immutable binding of all agent component classesAgentConfiguration: Pydantic model for agent settingsAgentStatus: Runtime status modelState Machine: Custom lightweight finite state machine engine
AgentStateMachine: Base class with auto-created starting, idle, end statesBasicAgentStateMachine: Ready-to-use default implementationEvents: Typed pub/sub communication via EventsPype
AgentListening: Declarative event subscriptions (extends MultiSubscriber)AgentPublishing: Event publication (extends MultiPublisher)StateAgentPublishing: Automatically publishes state transition eventsRunner: Agent orchestration and CLI
AgentRunner: Programmatic lifecycle management (setup, run, teardown)agentspype CLI: run, create, and plot commandsBaseRuntime: Typed resource registry for sharing objects across agentsAgency: Central registry for tracking and resolving agent instances
Visualization: Diagram generation via pydot
Full documentation is available at gianlucapagliara.github.io/agentspype.
AgentsPype uses uv for dependency management and packaging:
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run type checks
uv run mypy agentspype
# Run linting
uv run ruff check .
# Run pre-commit hooks
uv run pre-commit run --all-files
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
bidictEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | bidict<1,>=0.23.1 | runtime |
eventspypeEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | eventspype<2,>=1.2.0 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | pydantic<3,>=2.12 | runtime |
pydotEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | pydot<4,>=3.0.3 | runtime |
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | pyyaml<7,>=6.0 | runtime |
chronopypeEnvironment{
"extras": "",
"marker": "extra == \"clock\"",
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | chronopype<1,>=0.7.0; extra == "clock" | runtime |
processpypeEnvironment{
"extras": "",
"marker": "extra == \"service\"",
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | processpype>=2.0.0; extra == "service" | runtime |
pydantic-wizardEnvironment{
"extras": "",
"marker": "extra == \"wizard\"",
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | pydantic-wizard<1,>=0.2.2; extra == "wizard" | runtime |
bdist_wheel · 74.84 KB · Python py3
sdist · 159.15 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:28 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:fcfbd44d4a40e50165543b7958bcf13c1df755412de8ed08444ee2b5bcb6bf1c