Skip to main content

🚀 Agentic-Notify

PyPI version Documentation License: MIT

Agentic-Notify is an open-source Python SDK for building agentic, notification-driven workflows. It acts as an autonomous orchestration layer that intercepts mobile or web notifications, plans multi-step actions using Large Language Models (LLMs), and executes them deterministically using strict Pydantic schemas.

📖 Full Documentation

Visit the official documentation site at: https://nikhilkanamadi.github.io/agentic-notify/


⚡ The Problem It Solves

Traditional notification systems (like Firebase Cloud Messaging or APNs) are simple delivery pipes. They push a string to your phone, and you must manually open the app to take action.

Agentic-Notify transforms notifications into autonomous workflows. Instead of just displaying "Your flight is delayed," the engine intercepts the notification, uses a Dynamic Policy Engine to check your preferences, queries an LLM Planner, and executes a multi-step workflow (e.g., canceling your Uber, emailing your boss, and setting a native reminder).


📦 Installation

To install the library and the optional backend engine (FastAPI):

pip install agentic-notify[fastapi]

🛠️ Quick Start Guide

The easiest way to understand the architecture is to see it run end-to-end. The library is completely modular. You initialize the Orchestrator, register your Adapters (tools), and define the Workflow JSON graph.

1. Initialize the Engine

import asyncio
from agentic_notify.orchestrator import NotificationOrchestrator
from agentic_notify.storage.memory import InMemoryStore
from agentic_notify.policies.engine import PolicyEngine

storage = InMemoryStore()
policy_engine = PolicyEngine()
orchestrator = NotificationOrchestrator(storage=storage, policy_engine=policy_engine)

2. Register Your Adapters (Tools)

Adapters are standard python classes that execute real-world logic.

from agentic_notify.adapters.notes import NotesAdapter
from agentic_notify.adapters.mock_reminder import MockReminderAdapter

orchestrator.register_adapter(NotesAdapter())
orchestrator.register_adapter(MockReminderAdapter())

3. Define the Agentic Workflow

Using strict Pydantic models, define the graph that the LLM or Routing Engine will follow.

from agentic_notify.schemas.workflow import WorkflowDefinition, WorkflowTrigger, WorkflowStep

workflow = WorkflowDefinition(
    workflow_id="wf_e2e_demo",
    workflow_name="E2E Notification Handler",
    trigger=WorkflowTrigger(type="notification"),
    steps=[
        WorkflowStep(
            id="step_save_note",
            kind="adapter",
            name="save_note",
            input_from={"title": "event.title", "content": "event.body"}
        ),
        WorkflowStep(
            id="step_create_reminder",
            kind="adapter",
            name="create_reminder",
            input_from={"task_title": "event.title", "task_text": "event.body"}
        )
    ]
)

orchestrator.register_workflow(workflow)

# Route incoming events with a specific keyword to this workflow
orchestrator.router.add_rule(lambda event: "charge" in str(event.title).lower(), "wf_e2e_demo")

4. Inject a Mock Notification Event

The orchestrator converts raw device payloads into unified NotificationEvent schemas.

mock_payload = {
    "event_id": "evt_demo_001",
    "source_platform": "ios",
    "source_app": "finance",
    "title": "Unusual Charge Detected",
    "body": "A charge of $500.00 was detected. Please review.",
    "received_at": "2026-03-28T12:00:00Z"
}

async def run():
    result = await orchestrator.process_event(mock_payload)
    print(result)

asyncio.run(run())

🧠 Advanced Features Included

  • Pydantic Data Contracts: Zero LLM hallucinations. The engine forces Agentic output into strict JSON schema validation locks.
  • Human-in-the-Loop Hooks: The ApprovalHandler safely halts execution on high-risk actions (like payments) and suspends state until human authorization is granted.
  • Durable Postgres Storage: Fully tracks all state execution securely by tenant_id for resumable, safe workflows.
  • Dynamic Policy Engine: A middleware barrier that checks dynamic user-profiles and boundaries before any action is ever triggered.

Release files for agentic-notify 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentic-notify 0.1.1
File Size Uploaded
agentic_notify-0.1.1.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentic-notify 0.1.1
File Interpreter ABI Platform
agentic_notify-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.7 kB

Release files / agentic_notify-0.1.1.tar.gz

Download URL agentic_notify-0.1.1.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2662b312794d4de3def4b834c28db4eeedb5c24c7ba9f63ab5d59851e688ff91
BLAKE2b-256 checksum
How to use checksums
5d7bfeae3f455adeb6d5f5bcb8a82117d147356d277bb4f843573f95526d24ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release files / agentic_notify-0.1.1-py3-none-any.whl

Download URL agentic_notify-0.1.1-py3-none-any.whl
Size 26.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8469feec7d66cb1077d9b3b2e7b41762fc6202e3245ad2a21d044ea736316652
BLAKE2b-256 checksum
How to use checksums
40e6cfc04bb486480de1cc808094927cf70e0c338a2f51ebaa4299d28d874ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page