Async agent orchestration for Python
Project description
pygents
Async agent orchestration for Python. Define tools, queue turns, stream results.
Install
pip install pygents
Requires Python 3.12+.
Example
import asyncio
from pygents import Agent, Turn, tool
@tool()
async def greet(name: str) -> str:
return f"Hello, {name}!"
async def main():
agent = Agent("greeter", "Greets people", [greet])
await agent.put(Turn("greet", kwargs={"name": "World"}))
async for turn, value in agent.run():
print(value) # "Hello, World!"
asyncio.run(main())
Tools are async functions. Turns say which tool to run and with what args. Agents process a queue of turns and stream results. The loop exits when the queue is empty.
Features
- Streaming — agents yield
(turn, value)as results are produced - Inter-agent messaging — agents can send turns to each other
- Dynamic arguments — callable kwargs evaluated at runtime
- Timeouts — per-turn, default 60s
- Per-tool locking — opt-in serialization for shared state
- Fixed kwargs — decorator kwargs (e.g.
@tool(permission="admin")) are merged into every invocation; call-time kwargs override - Hooks — async callbacks at turn, agent, and tool level
- Serialization —
to_dict()/from_dict()for turns and agents
Docs
Full documentation: uv run mkdocs serve. MkDocs is an optional dependency—install with pip install -e ".[docs]" (or use uv run as above) so the library itself does not depend on it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pygents-0.1.4.tar.gz.
File metadata
- Download URL: pygents-0.1.4.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb6685c0d808f44aa22ef4a834e45eecd8975e0d3fcedf6d339fb080ffeb968d
|
|
| MD5 |
1eda0a6eea85b83a124213f2767ee1a4
|
|
| BLAKE2b-256 |
35f19ce43624d93895af36a4791c69ecff3c1b19308a59a61230b63cdbb5d19f
|
File details
Details for the file pygents-0.1.4-py3-none-any.whl.
File metadata
- Download URL: pygents-0.1.4-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e8eacc63e11af123acb80b194a8339db23afd3545978c7ed47c84ef5953526
|
|
| MD5 |
d120dc20d07ef3ed119e2015f3ec8f24
|
|
| BLAKE2b-256 |
b727c11de72e4380d2ed061f098c3a25b5ef8f499c838d9f8da86ffefdbcd2cb
|