Agentics is a Python framework that provides structured, scalable, and semantically grounded agentic computation.
Project description
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.
🚀 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 typing import Optional
from pydantic import BaseModel, Field
from agentics.core.transducible_functions import Transduce, transducible
class Movie(BaseModel):
movie_name: Optional[str] = None
description: Optional[str] = None
year: Optional[int] = None
class Genre(BaseModel):
genre: Optional[str] = Field(None, description="e.g., comedy, drama, action")
@transducible(provide_explanation=True)
async def classify_genre(state: Movie) -> Genre:
"""Classify the genre of the source Movie."""
return Transduce(state)
genre, explanation = await classify_genre(
Movie(
movie_name="The Godfather",
description=(
"The aging patriarch of an organized crime dynasty transfers control "
"of his clandestine empire to his reluctant son."
),
year=1972,
)
)
📘 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
- Alfio Massimiliano Gliozzo (IBM Research) — gliozzo@us.ibm.com
Core Contributors
- Nahuel Defosse (IBM Research) — nahuel.defosse@ibm.com
- Junkyu Lee (IBM Research) — Junkyu.Lee@ibm.com
- Naweed Aghmad Khan (IBM Research) — naweed.khan@ibm.com
- Christodoulos Constantinides (IBM Watson) — Christodoulos.Constantinides@ibm.com
- Mustafa Eyceoz (Red Hat) — Mustafa.Eyceoz@partner.ibm.com
🧠 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>
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 agentics_py-0.2.2.tar.gz.
File metadata
- Download URL: agentics_py-0.2.2.tar.gz
- Upload date:
- Size: 49.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3926776551323bbffad6f42123b05ca0503cf2e6c357b7505e653d141c5c1f78
|
|
| MD5 |
6cd89927f028fcaf2bfce172e6b93455
|
|
| BLAKE2b-256 |
001f97972ad9828afa663dbf1f57c63e6dd3e38f215da34a4696313d46c3d95a
|
Provenance
The following attestation bundles were made for agentics_py-0.2.2.tar.gz:
Publisher:
pypi.yaml on IBM/Agentics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentics_py-0.2.2.tar.gz -
Subject digest:
3926776551323bbffad6f42123b05ca0503cf2e6c357b7505e653d141c5c1f78 - Sigstore transparency entry: 871846292
- Sigstore integration time:
-
Permalink:
IBM/Agentics@0707ccbdf8c515121455456c801f2a05bc0edb6c -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/IBM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@0707ccbdf8c515121455456c801f2a05bc0edb6c -
Trigger Event:
release
-
Statement type:
File details
Details for the file agentics_py-0.2.2-py3-none-any.whl.
File metadata
- Download URL: agentics_py-0.2.2-py3-none-any.whl
- Upload date:
- Size: 55.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce48beb7e6d52cb5eb46e432faecc11552f771772a9cf9fa55cd1f14cf3c5e50
|
|
| MD5 |
225f7ccd2b0e1c656135c44dae3ae60b
|
|
| BLAKE2b-256 |
4fcdd148bc36c83028d93b9b9f0f48ee6c7edc158fb0766d42079e852fd8235a
|
Provenance
The following attestation bundles were made for agentics_py-0.2.2-py3-none-any.whl:
Publisher:
pypi.yaml on IBM/Agentics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentics_py-0.2.2-py3-none-any.whl -
Subject digest:
ce48beb7e6d52cb5eb46e432faecc11552f771772a9cf9fa55cd1f14cf3c5e50 - Sigstore transparency entry: 871846297
- Sigstore integration time:
-
Permalink:
IBM/Agentics@0707ccbdf8c515121455456c801f2a05bc0edb6c -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/IBM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@0707ccbdf8c515121455456c801f2a05bc0edb6c -
Trigger Event:
release
-
Statement type: