Skip to main content

Framework-agnostic AI agent library for building single and multi-agent systems

Project description

Agentify

Independent AI agent library based on the OpenAI SDK

Agentify is a Python library for building and orchestrating AI agents, from simple assistants to complex multi-agent systems. It targets the OpenAI-compatible Chat Completions interface, enabling support for multiple providers through a configurable base_url (OpenAI, Azure OpenAI, DeepSeek, Gemini, etc.). Agentify offers a streamlined, independent set of primitives for memory, tools, and coordination so you can focus on product logic without being tied to heavy frameworks.

Why Agentify?

  • Built for production: clear abstractions, explicit configuration, error handling and extension points that map well to real deployments.
  • Orchestration-first design: a uniform run() interface for agents, teams, pipelines and hierarchies makes it straightforward to compose and refactor flows.
  • Providers: switch between OpenAI, Gemini, Azure OpenAI, DeepSeek, Claude and others without changing your agent code.

Key Features

  • Agents and multi-agent patterns
    Single Agents with tools and memory, supervisor–worker Multi-Agent Teams, Sequential Pipelines where output flows from step to step, Hierarchical Structures for complex delegation, and Dynamic Flows where a controller decides at runtime which sub-agents or teams to invoke.

  • Memory service and isolation
    Pluggable backends (in-memory, Redis, …) with per-use-case policies (TTL, maximum messages, etc.), plus optional memory isolation so each agent can maintain its own conversation history for scalability and privacy.

  • Reasoning Models
    Configure the model's thinking depth, safely merge model_kwargs, automatically store "Chain of Thought" in conversation history, and log reasoning steps in real-time for visibility.

  • Tools and actions
    Simple @tool decorator for creating tools from functions with automatic JSON Schema generation, or type-annotated tool interface for custom implementations.

  • Observability hooks
    Callback system for logging, monitoring and debugging agent behaviour across complex flows.

  • I/O capabilities
    Streaming support for real-time responses and vision/image models for multimodal interactions.

  • Async & Parallel Execution
    Built-in async/await support (arun()) for all agents and flows. Automatically executes independent tool calls in parallel (e.g., fetching data from 3 APIs simultaneously), significantly reducing latency.

Installation

pip install agentify-core

For optional features:

pip install agentify-core[all]  # Installs all optional dependencies

Quick Start

from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
from agentify.memory.stores import InMemoryStore

# 1. Create a simple tool with @tool decorator
@tool
def get_time() -> dict:
    """Returns the current time."""
    from datetime import datetime
    return {"time": datetime.now().strftime("%H:%M:%S")}

# 2. Create memory service
memory = MemoryService(store=InMemoryStore(), log_enabled=True, max_log_length=100)
addr = MemoryAddress(conversation_id="session_1")

# 3. Create an Agent with the tool
agent = BaseAgent(
    config=AgentConfig(
        name="ReasoningAgent",
        system_prompt="You are a helpful assistant.",
        provider="provider",
        model_name="model",
        reasoning_effort="high",  # optional param:"low", "medium", "high"
        model_kwargs={"max_completion_tokens": 5000} # Pass model-specific params
    ),
    memory=memory,
    memory_address=addr,
    tools=[get_time]  # Add your tools here
)

# 4. Run a conversation
response = agent.run(user_input="What time is it?")

Composable Flows

Agentify provides powerful primitives that can be combined to build arbitrarily complex systems:

  • BaseAgent: The fundamental unit of work.
  • Teams: A group of agents managed by a supervisor.
  • Pipelines: A sequence of steps where output passes from one to the next.
  • Hierarchies: Tree structures for massive delegation.

Because all flows share the same run() interface, you can build Teams made of Pipelines, Pipelines made of Teams, and deeply nested Hierarchies.

Agentify supports both strict workflows (fixed, pre-defined Pipelines and Hierarchies) and dynamic agentic flows, where a supervisor/router agent decides at runtime which agent, Team or Pipeline to call next.

Learn More

For detailed documentation, examples, and API reference, visit the GitHub repository.

Contributing

Contributions are welcome! Please visit the repository to report issues or submit pull requests.

License

MIT License - see the repository for details.

Author

Fabian Melchor - fabianmp_98@hotmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentify_core-0.3.1.tar.gz (47.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentify_core-0.3.1-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

Details for the file agentify_core-0.3.1.tar.gz.

File metadata

  • Download URL: agentify_core-0.3.1.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agentify_core-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b307e2b67a5f7abcb03ee4e85c946a0a2862ce54e6096eb014dac52a489654f3
MD5 2ca17f1e962e562e47e30bf2acb86ff0
BLAKE2b-256 81e2a35e48047d2e7787c5ce05e29158ce68287ddd925b1167d284ff524af693

See more details on using hashes here.

File details

Details for the file agentify_core-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: agentify_core-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 50.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agentify_core-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e31b97bff86a018476af2a6d44b3bc71450738aa043186b7049906ac4e5e2c6
MD5 52daef623250b750771107f96ab19478
BLAKE2b-256 b0e5615fd494dca11f52f1f37f590c99029c766301065234ea38989b1bfecfee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page