Framework-agnostic AI agent library for building single and multi-agent systems
Project description
Agentify
Production-ready AI agent library built on the OpenAI SDK
Build and orchestrate AI agents—from simple assistants to complex multi-agent systems. Agentify targets the OpenAI-compatible Chat Completions interface, enabling seamless switching between providers (OpenAI, Azure, DeepSeek, Gemini, Anthropic, Llama, Local LLMs) without code changes.
Why Agentify?
| Feature | Benefit |
|---|---|
| Production-first | Clear abstractions, explicit config, robust error handling |
| Multi-provider | Switch providers with one line—no agent code changes |
| Orchestration primitives | Uniform run()/arun() across agents, teams, pipelines, hierarchies |
| Async-native | Non-blocking I/O, parallel tool execution, event-loop friendly |
| Pluggable memory | In-memory, SQLite, Redis, Elasticsearch—same API |
| Local LLMs | Support for LM Studio, Ollama and custom local servers |
Key Features
-
Single agents & multi-agent patterns
Agents with tools and memory • Supervisor–worker Teams • Sequential Pipelines • Hierarchical delegation • Dynamic routing -
Memory system
Pluggable backends with policies (TTL, message limits, pruning) • Memory isolation per conversation • Async-safe operations -
Reasoning models
Configurable thinking depth (reasoning_effort) • Chain-of-thought storage • Real-time reasoning logs -
Tools
@tooldecorator with automatic JSON Schema • Type-annotated interface • Argument validation -
Async & parallel execution
Nativearun()for async apps •run()bridge for sync apps • Parallel tool calls -
Observability
Callback hooks for logging, monitoring, debugging -
Multimodal
Vision/image support • Streaming responses
Installation
pip install agentify-core
Optional backends:
pip install agentify-core[redis] # Redis memory store
pip install agentify-core[elastic] # Elasticsearch store
pip install agentify-core[all] # All optional dependencies
Quick Start
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
from agentify.memory.stores import InMemoryStore
@tool
def get_time() -> dict:
"""Returns the current time."""
from datetime import datetime
return {"time": datetime.now().strftime("%H:%M:%S")}
# Setup
memory = MemoryService(store=InMemoryStore())
addr = MemoryAddress(conversation_id="session_1")
agent = BaseAgent(
config=AgentConfig(
name="Assistant",
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
verbose=True, # Controls logging
),
memory=memory,
memory_address=addr,
tools=[get_time],
)
response = agent.run("What time is it?")
print(response)
# Async usage is also available:
# response = await agent.arun("What time is it?")
Memory Backends
from agentify.memory.stores import InMemoryStore
from agentify.memory.stores.sqlite_store import SQLiteStore
from agentify.memory.stores.redis_store import RedisStore
# In-memory (default, for development)
store = InMemoryStore()
# SQLite (persistent, zero-config)
store = SQLiteStore(db_path="./agent.db")
# Redis (production, distributed)
store = RedisStore(url="redis://localhost:6379/0")
Composable Flows
All primitives share the same run()/arun() interface:
- BaseAgent — Single agent with tools
- Team — Supervisor routes to worker agents
- SequentialPipeline — Output flows step-to-step
- HierarchicalTeam — Tree structures for delegation
Nest freely: Teams of Pipelines, Pipelines of Teams, dynamic routing at runtime.
Links
- Documentation & Examples: GitHub Repository
- Issues & PRs: Contribute
License
MIT License
Author
Fabian Melchor — fabianmp_98@hotmail.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 agentify_core-0.4.0.tar.gz.
File metadata
- Download URL: agentify_core-0.4.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c4480aeb492e46b5b6249ffba98123db6213e308c50d48375a4e0a3d31c788d
|
|
| MD5 |
cbec40e93bfdaef2d525ef530fb73bae
|
|
| BLAKE2b-256 |
afc33bd51dcd6a41960cb729cb590e1b71e8e9378de6e769e7b53a5170aee8e4
|
File details
Details for the file agentify_core-0.4.0-py3-none-any.whl.
File metadata
- Download URL: agentify_core-0.4.0-py3-none-any.whl
- Upload date:
- Size: 55.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9052cb67e6844688a676259421e7658708586482926bc2ba25e8dc5a26dc3f2e
|
|
| MD5 |
5397cfbe0cedf9e6553851e6f9b81716
|
|
| BLAKE2b-256 |
10cdd9b124d990faf6c4f3ed10ccb6da1baf5e6d6496b828951095c8bf37899e
|