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.0.tar.gz (44.3 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.0-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentify_core-0.3.0.tar.gz
  • Upload date:
  • Size: 44.3 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.0.tar.gz
Algorithm Hash digest
SHA256 f1e2b2bf13de3476307a6fd219fb368f0f49a7cf0b845b93600b77c4a87833df
MD5 c8df829805a90522db1170ad95526110
BLAKE2b-256 049ab626b78c219852a88366897c537f290c58b78f1b4a805c848de44dcc433d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agentify_core-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 48.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2024278f0647c7f5a2127eb109cf45b00d7a5ca91015e71efa1f7e632a83c69
MD5 cc0a82feb9764c86b7c92e00c816320d
BLAKE2b-256 3fb2a8010261b56ccb14ddcd3d46ba2003357d1105d8294561abfed6673f1a75

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