agentify-core 0.3.1__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. {agentify_core-0.3.1 → agentify_core-0.4.0}/MANIFEST.in +3 -1
  2. agentify_core-0.4.0/PKG-INFO +201 -0
  3. agentify_core-0.4.0/README.md +122 -0
  4. agentify_core-0.4.0/README_PYPI.md +147 -0
  5. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/__init__.py +1 -1
  6. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/agent.py +144 -500
  7. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/callbacks.py +9 -0
  8. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/config.py +6 -1
  9. agentify_core-0.4.0/agentify/core/multimodal.py +73 -0
  10. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/runnable.py +1 -1
  11. agentify_core-0.4.0/agentify/core/sync_bridge.py +141 -0
  12. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/__init__.py +2 -0
  13. agentify_core-0.4.0/agentify/extensions/tools/shell_safe.py +114 -0
  14. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/llm/client.py +21 -1
  15. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/__init__.py +3 -0
  16. agentify_core-0.4.0/agentify/memory/async_service.py +167 -0
  17. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/interfaces.py +54 -1
  18. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/stores/elastic_store.py +1 -33
  19. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/stores/redis_store.py +3 -30
  20. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/stores/sqlite_store.py +2 -35
  21. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/multi_agent/hierarchical.py +27 -16
  22. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/multi_agent/pipeline.py +50 -50
  23. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/multi_agent/team.py +33 -28
  24. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/multi_agent/tool_wrapper.py +151 -49
  25. agentify_core-0.4.0/agentify_core.egg-info/PKG-INFO +201 -0
  26. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify_core.egg-info/SOURCES.txt +6 -0
  27. {agentify_core-0.3.1 → agentify_core-0.4.0}/pyproject.toml +1 -1
  28. agentify_core-0.4.0/tests/test_async_memory_service.py +109 -0
  29. agentify_core-0.4.0/tests/test_memory_address.py +89 -0
  30. agentify_core-0.4.0/tests/test_sync_bridge.py +61 -0
  31. {agentify_core-0.3.1 → agentify_core-0.4.0}/tests/test_verify_hooks.py +14 -4
  32. agentify_core-0.3.1/PKG-INFO +0 -170
  33. agentify_core-0.3.1/README.md +0 -111
  34. agentify_core-0.3.1/README_PYPI.md +0 -116
  35. agentify_core-0.3.1/agentify_core.egg-info/PKG-INFO +0 -170
  36. agentify_core-0.3.1/tests/test_memory_address.py +0 -26
  37. {agentify_core-0.3.1 → agentify_core-0.4.0}/LICENSE +0 -0
  38. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/__init__.py +0 -0
  39. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/core/tool.py +0 -0
  40. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/__init__.py +0 -0
  41. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/prompts/__init__.py +0 -0
  42. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/prompts/assistant.py +0 -0
  43. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/calculator.py +0 -0
  44. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/filesystem.py +0 -0
  45. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/planning.py +0 -0
  46. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/time.py +0 -0
  47. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/extensions/tools/weather.py +0 -0
  48. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/llm/__init__.py +0 -0
  49. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/mcp/__init__.py +0 -0
  50. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/mcp/adapter.py +0 -0
  51. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/mcp/client.py +0 -0
  52. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/policies.py +0 -0
  53. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/service.py +0 -0
  54. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/stores/__init__.py +0 -0
  55. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/memory/stores/in_memory_store.py +0 -0
  56. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/multi_agent/__init__.py +0 -0
  57. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/utils/__init__.py +0 -0
  58. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify/utils/style.py +0 -0
  59. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify_core.egg-info/dependency_links.txt +0 -0
  60. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify_core.egg-info/requires.txt +0 -0
  61. {agentify_core-0.3.1 → agentify_core-0.4.0}/agentify_core.egg-info/top_level.txt +0 -0
  62. {agentify_core-0.3.1 → agentify_core-0.4.0}/requirements.txt +0 -0
  63. {agentify_core-0.3.1 → agentify_core-0.4.0}/setup.cfg +0 -0
  64. {agentify_core-0.3.1 → agentify_core-0.4.0}/tests/test_filesystem_tools.py +0 -0
  65. {agentify_core-0.3.1 → agentify_core-0.4.0}/tests/test_mcp.py +0 -0
  66. {agentify_core-0.3.1 → agentify_core-0.4.0}/tests/test_memory_logging.py +0 -0
  67. {agentify_core-0.3.1 → agentify_core-0.4.0}/tests/test_planning_tool.py +0 -0
@@ -1,4 +1,4 @@
1
- include README.md
1
+ include README_PYPI.md
2
2
  include LICENSE
3
3
  include requirements.txt
4
4
  recursive-include agentify *.py
@@ -6,3 +6,5 @@ recursive-include agentify/extensions *.py
6
6
  recursive-exclude * __pycache__
7
7
  recursive-exclude * *.py[co]
8
8
  recursive-exclude * .DS_Store
9
+ prune services
10
+ prune opencode
@@ -0,0 +1,201 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentify-core
3
+ Version: 0.4.0
4
+ Summary: Framework-agnostic AI agent library for building single and multi-agent systems
5
+ Author: Fabian M
6
+ Author-email: fabianmp_98@hotmail.com
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/fa8i/Agentify
9
+ Project-URL: Repository, https://github.com/fa8i/Agentify
10
+ Project-URL: Bug Tracker, https://github.com/fa8i/Agentify/issues
11
+ Keywords: agentify,agentify-core,agent,multi-agent,ai,llm,openai,framework
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: openai
26
+ Requires-Dist: python-dotenv
27
+ Requires-Dist: Pillow
28
+ Requires-Dist: jsonschema>=4.0.0
29
+ Provides-Extra: redis
30
+ Requires-Dist: redis>=4.0.0; extra == "redis"
31
+ Provides-Extra: elastic
32
+ Requires-Dist: elasticsearch>=8.0.0; extra == "elastic"
33
+ Provides-Extra: tools
34
+ Requires-Dist: requests>=2.25.0; extra == "tools"
35
+ Provides-Extra: mcp
36
+ Requires-Dist: mcp; extra == "mcp"
37
+ Provides-Extra: ui
38
+ Requires-Dist: gradio==5.49.1; extra == "ui"
39
+ Provides-Extra: all
40
+ Requires-Dist: redis>=4.0.0; extra == "all"
41
+ Requires-Dist: elasticsearch>=8.0.0; extra == "all"
42
+ Requires-Dist: requests>=2.25.0; extra == "all"
43
+ Requires-Dist: gradio==5.49.1; extra == "all"
44
+ Requires-Dist: mcp; extra == "all"
45
+ Provides-Extra: dev
46
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
47
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
48
+ Requires-Dist: black>=22.0.0; extra == "dev"
49
+ Requires-Dist: flake8>=5.0.0; extra == "dev"
50
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
51
+ Requires-Dist: twine>=4.0.0; extra == "dev"
52
+ Requires-Dist: build>=0.10.0; extra == "dev"
53
+ Dynamic: license-file
54
+
55
+ # Agentify
56
+
57
+ **Production-ready AI agent library built on the OpenAI SDK**
58
+
59
+ 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.
60
+
61
+ ---
62
+
63
+ ## Why Agentify?
64
+
65
+ | Feature | Benefit |
66
+ |---------|---------|
67
+ | **Production-first** | Clear abstractions, explicit config, robust error handling |
68
+ | **Multi-provider** | Switch providers with one line—no agent code changes |
69
+ | **Orchestration primitives** | Uniform `run()`/`arun()` across agents, teams, pipelines, hierarchies |
70
+ | **Async-native** | Non-blocking I/O, parallel tool execution, event-loop friendly |
71
+ | **Pluggable memory** | In-memory, SQLite, Redis, Elasticsearch—same API |
72
+ | **Local LLMs** | Support for LM Studio, Ollama and custom local servers |
73
+
74
+ ---
75
+
76
+ ## Key Features
77
+
78
+ - **Single agents & multi-agent patterns**
79
+ Agents with tools and memory • Supervisor–worker Teams • Sequential Pipelines • Hierarchical delegation • Dynamic routing
80
+
81
+ - **Memory system**
82
+ Pluggable backends with policies (TTL, message limits, pruning) • Memory isolation per conversation • Async-safe operations
83
+
84
+ - **Reasoning models**
85
+ Configurable thinking depth (`reasoning_effort`) • Chain-of-thought storage • Real-time reasoning logs
86
+
87
+ - **Tools**
88
+ `@tool` decorator with automatic JSON Schema • Type-annotated interface • Argument validation
89
+
90
+ - **Async & parallel execution**
91
+ Native `arun()` for async apps • `run()` bridge for sync apps • Parallel tool calls
92
+
93
+ - **Observability**
94
+ Callback hooks for logging, monitoring, debugging
95
+
96
+ - **Multimodal**
97
+ Vision/image support • Streaming responses
98
+
99
+ ---
100
+
101
+ ## Installation
102
+
103
+ ```bash
104
+ pip install agentify-core
105
+ ```
106
+
107
+ Optional backends:
108
+ ```bash
109
+ pip install agentify-core[redis] # Redis memory store
110
+ pip install agentify-core[elastic] # Elasticsearch store
111
+ pip install agentify-core[all] # All optional dependencies
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Quick Start
117
+
118
+ ```python
119
+ from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
120
+ from agentify.memory.stores import InMemoryStore
121
+
122
+ @tool
123
+ def get_time() -> dict:
124
+ """Returns the current time."""
125
+ from datetime import datetime
126
+ return {"time": datetime.now().strftime("%H:%M:%S")}
127
+
128
+ # Setup
129
+ memory = MemoryService(store=InMemoryStore())
130
+ addr = MemoryAddress(conversation_id="session_1")
131
+
132
+ agent = BaseAgent(
133
+ config=AgentConfig(
134
+ name="Assistant",
135
+ system_prompt="You are a helpful assistant.",
136
+ provider="provider",
137
+ model_name="model",
138
+ reasoning_effort="high", # optional param:"low", "medium", "high"
139
+ model_kwargs={"max_completion_tokens": 5000}, # Pass model-specific params
140
+ verbose=True, # Controls logging
141
+ ),
142
+ memory=memory,
143
+ memory_address=addr,
144
+ tools=[get_time],
145
+ )
146
+
147
+ response = agent.run("What time is it?")
148
+ print(response)
149
+
150
+ # Async usage is also available:
151
+ # response = await agent.arun("What time is it?")
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Memory Backends
157
+
158
+ ```python
159
+ from agentify.memory.stores import InMemoryStore
160
+ from agentify.memory.stores.sqlite_store import SQLiteStore
161
+ from agentify.memory.stores.redis_store import RedisStore
162
+
163
+ # In-memory (default, for development)
164
+ store = InMemoryStore()
165
+
166
+ # SQLite (persistent, zero-config)
167
+ store = SQLiteStore(db_path="./agent.db")
168
+
169
+ # Redis (production, distributed)
170
+ store = RedisStore(url="redis://localhost:6379/0")
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Composable Flows
176
+
177
+ All primitives share the same `run()`/`arun()` interface:
178
+
179
+ - **BaseAgent** — Single agent with tools
180
+ - **Team** — Supervisor routes to worker agents
181
+ - **SequentialPipeline** — Output flows step-to-step
182
+ - **HierarchicalTeam** — Tree structures for delegation
183
+
184
+ Nest freely: Teams of Pipelines, Pipelines of Teams, dynamic routing at runtime.
185
+
186
+ ---
187
+
188
+ ## Links
189
+
190
+ - **Documentation & Examples**: [GitHub Repository](https://github.com/fa8i/Agentify)
191
+ - **Issues & PRs**: [Contribute](https://github.com/fa8i/Agentify/issues)
192
+
193
+ ---
194
+
195
+ ## License
196
+
197
+ MIT License
198
+
199
+ ## Author
200
+
201
+ **Fabian Melchor** — [fabianmp_98@hotmail.com](mailto:fabianmp_98@hotmail.com)
@@ -0,0 +1,122 @@
1
+ <div align="center">
2
+
3
+ # Agentify
4
+
5
+ [![PyPI version](https://img.shields.io/pypi/v/agentify-core?color=orange&style=for-the-badge)](https://pypi.org/project/agentify-core/)
6
+ [![Downloads](https://img.shields.io/pepy/dt/agentify-core?style=for-the-badge)](https://pepy.tech/project/agentify-core)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
8
+ [![Python Version](https://img.shields.io/pypi/pyversions/agentify-core?style=for-the-badge)](https://pypi.org/project/agentify-core/)
9
+
10
+ <h3>Independent AI Agent Library based on the OpenAI SDK</h3>
11
+
12
+ <p>
13
+ Agentify is a lightweight, clean, and powerful Python library for building AI agents and multi-agent systems.
14
+ It provides simple abstractions for memory, tools, and orchestration without the heavy framework lock-in.
15
+ </p>
16
+
17
+ [Getting Started](docs/getting_started.md) • [Documentation](docs/api_reference.md) • [Examples](examples/) • [Changelog](CHANGELOG.md)
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## Key Features
24
+
25
+ | Feature | Description |
26
+ | :--- | :--- |
27
+ | **Multi-Agent Orchestration** | Teams, sequential pipelines, hierarchical structures, and dynamic sub-agent spawning. |
28
+ | **Memory Service** | Pluggable backends (In-Memory, SQLite, Redis, Elasticsearch) with configurable TTL, limits and token budgets. |
29
+ | **Tools & MCP** | Easy `@tool` decorator, custom classes, and full **Model Context Protocol (MCP)** integration. |
30
+ | **Local Models** | First-class support for **LM Studio**, **Ollama**, and other local servers via OpenAI-compatible endpoints. |
31
+ | **Async & Parallel** | Dual API: simple `run()` for sync usage and `arun()` for native async execution. |
32
+ | **Observability** | Comprehensive callback system for monitoring, debugging, and tracing agent thoughts. |
33
+ | **Reasoning & Planning** | Configure thinking depth, chain-of-thought storage, and real-time reasoning logs. |
34
+
35
+ ## Installation
36
+
37
+ Install the core package:
38
+
39
+ ```bash
40
+ pip install agentify-core
41
+ ```
42
+
43
+ For all optional features (Redis, vector stores, etc.):
44
+
45
+ ```bash
46
+ pip install agentify-core[all]
47
+ ```
48
+
49
+ ## Quick Start
50
+
51
+ Here is how to create a simple agent with memory and tools:
52
+
53
+ ```python
54
+ # Note: Agentify does not auto-load .env. Load it manually if needed.
55
+ # from dotenv import load_dotenv; load_dotenv()
56
+
57
+ from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
58
+ from agentify.memory.stores import InMemoryStore
59
+
60
+ # 1. Define a tool
61
+ @tool
62
+ def get_time() -> dict:
63
+ """Returns the current local time."""
64
+ from datetime import datetime
65
+ return {"time": datetime.now().strftime("%H:%M:%S")}
66
+
67
+ # 2. Initialize Memory
68
+ memory = MemoryService(store=InMemoryStore())
69
+ addr = MemoryAddress(conversation_id="session_1")
70
+
71
+ # 3. Create the Agent
72
+ agent = BaseAgent(
73
+ config=AgentConfig(
74
+ name="ReasoningAgent",
75
+ system_prompt="You are a helpful assistant.",
76
+ provider="provider",
77
+ model_name="model",
78
+ reasoning_effort="low", # optional param:"low", "medium", "high"
79
+ model_kwargs={"max_completion_tokens": 5000}, # Pass model-specific params
80
+ verbose=True, # Controls logging (True by default)
81
+ ),
82
+ memory=memory,
83
+ memory_address=addr,
84
+ tools=[get_time]
85
+ )
86
+
87
+ # 4. Run it (sync)
88
+ response = agent.run(user_input="What time is it?")
89
+ print(response)
90
+
91
+ # Async usage is also available:
92
+ # response = await agent.arun(user_input="What time is it?")
93
+ ```
94
+
95
+ ## Documentation
96
+
97
+ Detailed guides and API references are available in the `docs/` directory:
98
+
99
+ - **[Getting Started](docs/getting_started.md)**: Installation and first steps.
100
+ - **[Core Concepts](docs/core_concepts.md)**: Deep dive into Agents, Memory, and Tools.
101
+ - **[Multi-Agent Systems](docs/multi_agent.md)**: Building Teams, Pipelines, and Hierarchies.
102
+ - **[Advanced Features](docs/advanced.md)**: Vision, Screening, Hooks, and more.
103
+
104
+ ## Examples
105
+
106
+ Explore the `examples/` directory for production-ready implementations:
107
+
108
+ - **[Chatbot](examples/chatbot/)**: A simple conversational agent.
109
+ - **[Multi-Agent Team](examples/multi_agent/team/)**: Agents working together.
110
+ - **[Pipelines](examples/multi_agent/pipeline/)**: Sequential task processing.
111
+ - **[Hierarchies](examples/multi_agent/hierarchical/)**: Complex delegated decision making.
112
+
113
+ ## License
114
+
115
+ This project is licensed under the [MIT License](https://opensource.org/licenses/MIT).
116
+
117
+ ---
118
+
119
+ <div align="center">
120
+ Created by <b>Fabian Melchor</b><br>
121
+ <a href="mailto:fabianmp_98@hotmail.com">fabianmp_98@hotmail.com</a>
122
+ </div>
@@ -0,0 +1,147 @@
1
+ # Agentify
2
+
3
+ **Production-ready AI agent library built on the OpenAI SDK**
4
+
5
+ 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.
6
+
7
+ ---
8
+
9
+ ## Why Agentify?
10
+
11
+ | Feature | Benefit |
12
+ |---------|---------|
13
+ | **Production-first** | Clear abstractions, explicit config, robust error handling |
14
+ | **Multi-provider** | Switch providers with one line—no agent code changes |
15
+ | **Orchestration primitives** | Uniform `run()`/`arun()` across agents, teams, pipelines, hierarchies |
16
+ | **Async-native** | Non-blocking I/O, parallel tool execution, event-loop friendly |
17
+ | **Pluggable memory** | In-memory, SQLite, Redis, Elasticsearch—same API |
18
+ | **Local LLMs** | Support for LM Studio, Ollama and custom local servers |
19
+
20
+ ---
21
+
22
+ ## Key Features
23
+
24
+ - **Single agents & multi-agent patterns**
25
+ Agents with tools and memory • Supervisor–worker Teams • Sequential Pipelines • Hierarchical delegation • Dynamic routing
26
+
27
+ - **Memory system**
28
+ Pluggable backends with policies (TTL, message limits, pruning) • Memory isolation per conversation • Async-safe operations
29
+
30
+ - **Reasoning models**
31
+ Configurable thinking depth (`reasoning_effort`) • Chain-of-thought storage • Real-time reasoning logs
32
+
33
+ - **Tools**
34
+ `@tool` decorator with automatic JSON Schema • Type-annotated interface • Argument validation
35
+
36
+ - **Async & parallel execution**
37
+ Native `arun()` for async apps • `run()` bridge for sync apps • Parallel tool calls
38
+
39
+ - **Observability**
40
+ Callback hooks for logging, monitoring, debugging
41
+
42
+ - **Multimodal**
43
+ Vision/image support • Streaming responses
44
+
45
+ ---
46
+
47
+ ## Installation
48
+
49
+ ```bash
50
+ pip install agentify-core
51
+ ```
52
+
53
+ Optional backends:
54
+ ```bash
55
+ pip install agentify-core[redis] # Redis memory store
56
+ pip install agentify-core[elastic] # Elasticsearch store
57
+ pip install agentify-core[all] # All optional dependencies
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Quick Start
63
+
64
+ ```python
65
+ from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
66
+ from agentify.memory.stores import InMemoryStore
67
+
68
+ @tool
69
+ def get_time() -> dict:
70
+ """Returns the current time."""
71
+ from datetime import datetime
72
+ return {"time": datetime.now().strftime("%H:%M:%S")}
73
+
74
+ # Setup
75
+ memory = MemoryService(store=InMemoryStore())
76
+ addr = MemoryAddress(conversation_id="session_1")
77
+
78
+ agent = BaseAgent(
79
+ config=AgentConfig(
80
+ name="Assistant",
81
+ system_prompt="You are a helpful assistant.",
82
+ provider="provider",
83
+ model_name="model",
84
+ reasoning_effort="high", # optional param:"low", "medium", "high"
85
+ model_kwargs={"max_completion_tokens": 5000}, # Pass model-specific params
86
+ verbose=True, # Controls logging
87
+ ),
88
+ memory=memory,
89
+ memory_address=addr,
90
+ tools=[get_time],
91
+ )
92
+
93
+ response = agent.run("What time is it?")
94
+ print(response)
95
+
96
+ # Async usage is also available:
97
+ # response = await agent.arun("What time is it?")
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Memory Backends
103
+
104
+ ```python
105
+ from agentify.memory.stores import InMemoryStore
106
+ from agentify.memory.stores.sqlite_store import SQLiteStore
107
+ from agentify.memory.stores.redis_store import RedisStore
108
+
109
+ # In-memory (default, for development)
110
+ store = InMemoryStore()
111
+
112
+ # SQLite (persistent, zero-config)
113
+ store = SQLiteStore(db_path="./agent.db")
114
+
115
+ # Redis (production, distributed)
116
+ store = RedisStore(url="redis://localhost:6379/0")
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Composable Flows
122
+
123
+ All primitives share the same `run()`/`arun()` interface:
124
+
125
+ - **BaseAgent** — Single agent with tools
126
+ - **Team** — Supervisor routes to worker agents
127
+ - **SequentialPipeline** — Output flows step-to-step
128
+ - **HierarchicalTeam** — Tree structures for delegation
129
+
130
+ Nest freely: Teams of Pipelines, Pipelines of Teams, dynamic routing at runtime.
131
+
132
+ ---
133
+
134
+ ## Links
135
+
136
+ - **Documentation & Examples**: [GitHub Repository](https://github.com/fa8i/Agentify)
137
+ - **Issues & PRs**: [Contribute](https://github.com/fa8i/Agentify/issues)
138
+
139
+ ---
140
+
141
+ ## License
142
+
143
+ MIT License
144
+
145
+ ## Author
146
+
147
+ **Fabian Melchor** — [fabianmp_98@hotmail.com](mailto:fabianmp_98@hotmail.com)
@@ -11,7 +11,7 @@ from agentify.memory.service import MemoryService
11
11
  from agentify.memory.interfaces import MemoryAddress
12
12
  from agentify.memory.policies import MemoryPolicy
13
13
 
14
- __version__ = "0.3.1"
14
+ __version__ = "0.4.0"
15
15
 
16
16
  __all__ = [
17
17
  "BaseAgent",