A previous release had provenance metadata, but this release does not. View details.
Agentics
Transduction is all you need
Agentics is a Python framework for structured, scalable, and semantically grounded agentic computation.
Build AI-powered pipelines as typed data transformations—combining Pydantic schemas, LLM-powered transduction, and async execution.
✨ Why Agentics
Most "agent frameworks" let untyped text flow through a pipeline. Agentics flips that: types are the interface. Workflows are expressed as transformations between structured states, with predictable schemas and composable operators.
🚀 Key Features
- Typed agentic computation: Define workflows over structured types using standard Pydantic models.
- Logical transduction (
<<): Transform data between types using LLMs (few-shot examples, tools, memory). - Async mapping & reduction: Scale out with
amapandareduceover datasets. - Batch execution & retry: Built-in batching, retries, and graceful fallbacks.
- Tool support (MCP): Integrate external tools via MCP.
📦 Getting Started
Quickstart:
Install Agentics in your current env, set up your environment variable, and run your first logical transduction:
uv pip install agentics-py
set up your .env using the required parameters for your LLM provider of choice. Use .env_sample as a reference.
Find out more 👉 Getting Started: docs/getting_started.md
Examples
Run scripts in the examples/ folder (via uv):
uv run python examples/hello_world.py
🧪 Example Usage
from pydantic import BaseModel, Field
from agentics.core.transducible_functions import transducible, Transduce
class ProductDescription(BaseModel):
name: str
features: str
price: float
class ViralTweet(BaseModel):
tweet: str = Field(..., description="Engaging tweet under 280 characters")
hashtags: list[str] = Field(..., description="3-5 relevant hashtags")
hook: str = Field(..., description="Attention-grabbing opening line")
@transducible()
async def generate_viral_tweet(product: ProductDescription) -> ViralTweet:
"""Transform boring product descriptions into viral social media content."""
return Transduce(product)
# Transform a product into viral content
product = ProductDescription(
name="Agentics Framework",
features="Type-safe AI workflows with LLM-powered transductions",
price=0.0 # Open source!
)
tweet = await generate_viral_tweet(product)
print(f"🔥 {tweet.tweet}")
print(f"📱 {' '.join(tweet.hashtags)}")
Output:
🔥 Stop wrestling with unstructured LLM outputs! 🎯 Agentics gives you type-safe AI workflows that just work. Build production-ready agents in minutes, not weeks. And it's FREE! 🚀
📱 #AI #OpenSource #Python #LLM #DevTools
📘 Documentation and Notebooks
Complete documentation available here
| Notebook | Description |
|---|---|
| agentics.ipynb | Core Agentics concepts: typed states, operators, and workflow structure |
| atypes.ipynb | Working with ATypes: schema composition, merging, and type-driven design patterns |
| logical_transduction_algebra.ipynb | Logical Transduction Algebra: principles and examples behind << |
| map_reduce.ipynb | Scale out workflows with amap / areduce (MapReduce-style execution) |
| synthetic_data_generation.ipynb | Generate structured synthetic datasets using typed transductions |
| transducible_functions.ipynb | Build reusable @transducible functions, explanations, and transduction control |
✅ Tests
Run all tests:
uv run pytest
📄 License
Apache 2.0
👥 Authors
Project Lead and Main Contributor
- Alfio Massimiliano Gliozzo (IBM Research) — gliozzo@us.ibm.com
Core Contributors
- Junkyu Lee (IBM) — Junkyu.Lee@ibm.com
- Nahuel Defosse (IBM) — nahuel.defosse@ibm.com
- Naweed Aghmad Khan (IBM) — naweed.khan@ibm.com
Community Contributors
- Christodoulos Constantinides (IBM) — Christodoulos.Constantinides@ibm.com
- Nandana Mihindukulasooriya (IBM) — nandana@ibm.com
- Mustafa Eyceoz (Red Hat) — Mustafa.Eyceoz@partner.ibm.com
- Gaetano Rossiello (IBM) — gaetano.rossiello@ibm.com
- Agostino Capponi (Columbia University) — ac3827@columbia.edu
- Chunghyun Han (Columbia University) — ch4005@columbia.edu
- Abhinav Goel (Columbia University) ag5252@columbia.edu
- Chaitya Shan (Columbia University) — cs4621@columbia.edu
- Brian Zi Qi Zhu (Columbia University) — bzz2101@columbia.edu
🧠 Conceptual Overview
Most “agent frameworks” let untyped text flow through a pipeline. Agentics flips that: types are the interface. Workflows are expressed as transformations between structured states, with predictable schemas and composable operators.
Because every step is a typed transformation, you can compose workflows safely (merge and compose types/instances, chain transductions, and reuse @transducible functions) without losing semantic structure.
Agentics makes it natural to scale out: apply transformations over collections with async amap, and aggregate results with areduce.
Agentics models workflows as transformations between typed states.
Core operations:
amap(func): apply an async function over each stateareduce(func): reduce a list of states into a single value<<: logical transduction from source to target Agentics&: merge Pydantic types / instances@: compose Pydantic types / instances
📜 Reference
Agentics implements Logical Transduction Algebra, described in:
- Alfio Gliozzo, Naweed Khan, Christodoulos Constantinides, Nandana Mihindukulasooriya, Nahuel Defosse, Junkyu Lee. Transduction is All You Need for Structured Data Workflows (August 2025). arXiv:2508.15610 — https://arxiv.org/abs/2508.15610
🤝 Contributing
Contributions are welcome! CONTRIBUTING.md
Please ensure your commit messages include:
Signed-off-by: Author Name <authoremail@example.com>
Metadata
Release files for agentics-py 0.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Loss of provenance
These files do not have provenance metadata, despite files in a prior release including this data.
We recommend further investigation before installing these files. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| agentics_py-0.3.6.tar.gz | 3.2 MB | Without provenance | Details for agentics_py-0.3.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| agentics_py-0.3.6-py3-none-any.whl | Python 3 | none | any | Details for agentics_py-0.3.6-py3-none-any.whl |
Total release size: 3.2 MB
Release files / agentics_py-0.3.6.tar.gz
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | agentics_py-0.3.6.tar.gz |
|---|---|
| Size | 3.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc5aff7a2e85f99f78450ea9e44c7b2781eb29adb776c4f3c5424ba9f8ee2aa4
|
|
BLAKE2b-256 checksum How to use checksums |
fbee0b81eab951445bccfbb87c15bcb37cfe0f85f8c4af3e403291c5fca03bdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.23
|
Release files / agentics_py-0.3.6-py3-none-any.whl
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | agentics_py-0.3.6-py3-none-any.whl |
|---|---|
| Size | 60.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c79468d458836d4365cff917be1af5e4a43c2b6084fe646deeb74ceda151693
|
|
BLAKE2b-256 checksum How to use checksums |
e890b8ef5dd23e2a0490b15c0bb4ff6fa4e70307b098ea738a68efad439877fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.23
|
Security for agentics-py 0.3.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Loss of provenance
A previous release of these files had provenance metadata, but this release does not.
While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.
Release comparison
- Removed 0.3.5 2 files With provenance
- Added 0.3.6 2 files Without provenance
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.