Agentics is a Python framework that provides structured, scalable, and semantically grounded agentic computation. It enables developers to build AI-powered pipelines where all operations are based on typed data transformations, combining the power of Pydantic models and LLMs with the flexibility of asynchronous execution.
- Principal Investigator
- Alfio Massimiliano Gliozzo, IBM Research, [email protected]
- Core Contributors:
- Junkyu Lee, IBM Research, [email protected]
- Naweed Aghmad Khan, IBM Research, [email protected]
- Nahuel Defosse, IBM Research, [email protected]
- Christodoulos Constantinides, IBM Watson, [email protected]
- Mustafa Eyceoz, RedHat, [email protected]
Agentics is an implementation of 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
We welcome new AG entusiasts to extend this framework with new applications and extension to the language.
Typed Agentic Computation: Define workflows over structured types using standard Pydantic schemas.
Logical Transduction (<<): Transform data between types using LLMs with few-shot examples, tools, and memory.
Async Mapping and Reduction: Apply async mapping (amap) and aggregation (areduce) functions over datasets.
Batch Execution & Retry: Automatically handles batch-based asynchronous execution with graceful fallback.
Domain Customization
- Prompt Templates Customize prompting behavior and add ad-hoc instructions
- Memory Augmentation: Use retrieval-augmented memory to inform transduction.
Built-in Support for Tools: Integrate LangChain tools or custom functions.
👉 Getting Started: Learn how to install Agentic, set up your environment, and run your first logical transduction.
🧠 Agentics: Explore how Agentics wraps pydantic
models into transduction-ready agents.
🔁 Transduction: Discover how the <<
operator implements logical transduction between types and how to control its behavior.
🧬 Memory: Leverage external knowledge from documents to enhance transduction.
🛠️ Tools: Learn how to integrate external tools (e.g., LangChain, CrewAI) to provide access to external data necessary for logical transduction.
from agentics import Agentics as AG
from pydantic import BaseModel
class Answer(BaseModel):
answer: str
justification: str
confidence: float
# Instantiate an Agentics object with a target type
qa_agent = AG(atype=Answer)
# Perform transduction from text prompts
qa_agent = await (qa_agent << [
"Who is the president of the US?",
"When is the end of the world predicted?",
"This is a report from the US embassy"
])
# Access structured answers
for result in qa_agent.states:
print(result.answer, result.confidence)
🧠 Conceptual Overview
Agentics models workflows as transformations between typed states. Each instance of Agentics includes:
atype: A Pydantic model representing the schema.
states: A list of objects of that type.
Optional llm, tools, prompt_template, memory, and batch_size.
Operations:
amap(func): Applies an async function over each state.
areduce(func): Reduces a list of states into a single value.
<<: Performs logical transduction from source to target Agentics.
🔧 Advanced Usage
Customizing Prompts
agent.prompt_template = """ You are an assistant that extracts key information. Please respond using the format {answer}, {justification}, {confidence}. """
📚 Documentation
Full documentation and examples are available at:
🧪 Tests
Run all tests using:
pytest tests/
🛠️ Requirements
Python 3.11+
pydantic >= 2.0
langchain, crewai
📄 License
Apache 2.0
👥 Authors
Developed by Alfio Gliozzo and contributors.
Contributions welcome!
Core team Alfio Gliozzo, Junkyu Lee, Naweed Aghmad, Nahuel Defosse, Christodoulos Constantinides, Mustafa Eyceoz and contributors.
Your commit messages should include the line:
Signed-off-by: Author Name <[email protected]>