agentify-core 0.1.4__tar.gz → 0.2.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.
- {agentify_core-0.1.4/agentify_core.egg-info → agentify_core-0.2.0}/PKG-INFO +21 -10
- {agentify_core-0.1.4 → agentify_core-0.2.0}/README.md +20 -14
- {agentify_core-0.1.4 → agentify_core-0.2.0}/README_PYPI.md +20 -9
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/__init__.py +8 -14
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/__init__.py +4 -1
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/agent.py +428 -25
- agentify_core-0.2.0/agentify/core/tool.py +171 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/llm/client.py +109 -2
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/service.py +12 -12
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/hierarchical.py +23 -1
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/pipeline.py +59 -1
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/team.py +27 -1
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/tool_wrapper.py +117 -6
- {agentify_core-0.1.4 → agentify_core-0.2.0/agentify_core.egg-info}/PKG-INFO +21 -10
- {agentify_core-0.1.4 → agentify_core-0.2.0}/pyproject.toml +1 -1
- agentify_core-0.1.4/agentify/core/tool.py +0 -30
- {agentify_core-0.1.4 → agentify_core-0.2.0}/LICENSE +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/MANIFEST.in +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/callbacks.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/config.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/prompts/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/prompts/assistant.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/calculator.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/filesystem.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/planning.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/time.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/weather.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/llm/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/interfaces.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/policies.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/in_memory_store.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/redis_store.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/utils/__init__.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/utils/style.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/SOURCES.txt +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/dependency_links.txt +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/requires.txt +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/top_level.txt +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/requirements.txt +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/setup.cfg +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/tests/test_filesystem_tools.py +0 -0
- {agentify_core-0.1.4 → agentify_core-0.2.0}/tests/test_planning_tool.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentify-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Framework-agnostic AI agent library for building single and multi-agent systems
|
|
5
5
|
Author-email: Fabian M <fabian@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -72,7 +72,7 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
72
72
|
"Chain of Thought" in conversation history, and log reasoning steps in real-time for visibility.
|
|
73
73
|
|
|
74
74
|
- **Tools and actions**
|
|
75
|
-
|
|
75
|
+
Simple `@tool` decorator for creating tools from functions with automatic JSON Schema generation, or type-annotated tool interface for custom implementations.
|
|
76
76
|
|
|
77
77
|
- **Observability hooks**
|
|
78
78
|
Callback system for logging, monitoring and debugging agent behaviour across complex flows.
|
|
@@ -80,6 +80,9 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
80
80
|
- **I/O capabilities**
|
|
81
81
|
Streaming support for real-time responses and vision/image models for multimodal interactions.
|
|
82
82
|
|
|
83
|
+
- **Async & Parallel Execution**
|
|
84
|
+
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.
|
|
85
|
+
|
|
83
86
|
|
|
84
87
|
## Installation
|
|
85
88
|
|
|
@@ -95,29 +98,37 @@ pip install agentify-core[all] # Installs all optional dependencies
|
|
|
95
98
|
## Quick Start
|
|
96
99
|
|
|
97
100
|
```python
|
|
98
|
-
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress
|
|
101
|
+
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
|
|
99
102
|
from agentify.memory.stores import InMemoryStore
|
|
100
103
|
|
|
101
|
-
# 1. Create
|
|
104
|
+
# 1. Create a simple tool with @tool decorator
|
|
105
|
+
@tool
|
|
106
|
+
def get_time() -> dict:
|
|
107
|
+
"""Returns the current time."""
|
|
108
|
+
from datetime import datetime
|
|
109
|
+
return {"time": datetime.now().strftime("%H:%M:%S")}
|
|
110
|
+
|
|
111
|
+
# 2. Create memory service
|
|
102
112
|
memory = MemoryService(store=InMemoryStore(), log_enabled=True, max_log_length=100)
|
|
103
113
|
addr = MemoryAddress(conversation_id="session_1")
|
|
104
114
|
|
|
105
|
-
#
|
|
115
|
+
# 3. Create an Agent with the tool
|
|
106
116
|
agent = BaseAgent(
|
|
107
117
|
config=AgentConfig(
|
|
108
118
|
name="ReasoningAgent",
|
|
109
119
|
system_prompt="You are a helpful assistant.",
|
|
110
|
-
provider="
|
|
111
|
-
model_name="
|
|
120
|
+
provider="provider",
|
|
121
|
+
model_name="model",
|
|
112
122
|
reasoning_effort="high", # optional param:"low", "medium", "high"
|
|
113
123
|
model_kwargs={"max_completion_tokens": 5000} # Pass model-specific params
|
|
114
124
|
),
|
|
115
125
|
memory=memory,
|
|
116
|
-
memory_address=addr
|
|
126
|
+
memory_address=addr,
|
|
127
|
+
tools=[get_time] # Add your tools here
|
|
117
128
|
)
|
|
118
129
|
|
|
119
|
-
#
|
|
120
|
-
response = agent.run(user_input="
|
|
130
|
+
# 4. Run a conversation
|
|
131
|
+
response = agent.run(user_input="What time is it?")
|
|
121
132
|
```
|
|
122
133
|
|
|
123
134
|
## Composable Flows
|
|
@@ -25,7 +25,7 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
25
25
|
"Chain of Thought" in conversation history, and log reasoning steps in real-time for visibility.
|
|
26
26
|
|
|
27
27
|
- **Tools and actions**
|
|
28
|
-
|
|
28
|
+
Simple `@tool` decorator for creating tools from functions with automatic JSON Schema generation, or type-annotated tool interface for custom implementations.
|
|
29
29
|
|
|
30
30
|
- **Observability hooks**
|
|
31
31
|
Callback system for logging, monitoring and debugging agent behaviour across complex flows.
|
|
@@ -33,6 +33,9 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
33
33
|
- **I/O capabilities**
|
|
34
34
|
Streaming support for real-time responses and vision/image models for multimodal interactions.
|
|
35
35
|
|
|
36
|
+
- **Async & Parallel Execution**
|
|
37
|
+
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.
|
|
38
|
+
|
|
36
39
|
|
|
37
40
|
## Installation
|
|
38
41
|
|
|
@@ -48,29 +51,37 @@ pip install agentify-core[all] # Installs all optional dependencies
|
|
|
48
51
|
## Quick Start
|
|
49
52
|
|
|
50
53
|
```python
|
|
51
|
-
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress
|
|
54
|
+
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
|
|
52
55
|
from agentify.memory.stores import InMemoryStore
|
|
53
56
|
|
|
54
|
-
# 1. Create
|
|
57
|
+
# 1. Create a simple tool with @tool decorator
|
|
58
|
+
@tool
|
|
59
|
+
def get_time() -> dict:
|
|
60
|
+
"""Returns the current time."""
|
|
61
|
+
from datetime import datetime
|
|
62
|
+
return {"time": datetime.now().strftime("%H:%M:%S")}
|
|
63
|
+
|
|
64
|
+
# 2. Create memory service
|
|
55
65
|
memory = MemoryService(store=InMemoryStore(), log_enabled=True, max_log_length=100)
|
|
56
66
|
addr = MemoryAddress(conversation_id="session_1")
|
|
57
67
|
|
|
58
|
-
#
|
|
68
|
+
# 3. Create an Agent with the tool
|
|
59
69
|
agent = BaseAgent(
|
|
60
70
|
config=AgentConfig(
|
|
61
71
|
name="ReasoningAgent",
|
|
62
72
|
system_prompt="You are a helpful assistant.",
|
|
63
|
-
provider="
|
|
64
|
-
model_name="
|
|
73
|
+
provider="provider",
|
|
74
|
+
model_name="model",
|
|
65
75
|
reasoning_effort="high", # optional param:"low", "medium", "high"
|
|
66
76
|
model_kwargs={"max_completion_tokens": 5000} # Pass model-specific params
|
|
67
77
|
),
|
|
68
78
|
memory=memory,
|
|
69
|
-
memory_address=addr
|
|
79
|
+
memory_address=addr,
|
|
80
|
+
tools=[get_time] # Add your tools here
|
|
70
81
|
)
|
|
71
82
|
|
|
72
|
-
#
|
|
73
|
-
response = agent.run(user_input="
|
|
83
|
+
# 4. Run a conversation
|
|
84
|
+
response = agent.run(user_input="What time is it?")
|
|
74
85
|
```
|
|
75
86
|
|
|
76
87
|
## Composable Flows
|
|
@@ -110,8 +121,3 @@ Check out the [examples](examples/) directory for detailed implementations:
|
|
|
110
121
|
|
|
111
122
|
- **Fabian Melchor** [fabianmp_98@hotmail.com](mailto:fabianmp_98@hotmail.com)
|
|
112
123
|
|
|
113
|
-
|
|
114
|
-
## Links
|
|
115
|
-
|
|
116
|
-
- **Repository**: https://github.com/fa8i/Agentify
|
|
117
|
-
- **Issues**: https://github.com/fa8i/Agentify/issues
|
|
@@ -25,7 +25,7 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
25
25
|
"Chain of Thought" in conversation history, and log reasoning steps in real-time for visibility.
|
|
26
26
|
|
|
27
27
|
- **Tools and actions**
|
|
28
|
-
|
|
28
|
+
Simple `@tool` decorator for creating tools from functions with automatic JSON Schema generation, or type-annotated tool interface for custom implementations.
|
|
29
29
|
|
|
30
30
|
- **Observability hooks**
|
|
31
31
|
Callback system for logging, monitoring and debugging agent behaviour across complex flows.
|
|
@@ -33,6 +33,9 @@ Agentify is a Python library for building and orchestrating AI agents, from simp
|
|
|
33
33
|
- **I/O capabilities**
|
|
34
34
|
Streaming support for real-time responses and vision/image models for multimodal interactions.
|
|
35
35
|
|
|
36
|
+
- **Async & Parallel Execution**
|
|
37
|
+
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.
|
|
38
|
+
|
|
36
39
|
|
|
37
40
|
## Installation
|
|
38
41
|
|
|
@@ -48,29 +51,37 @@ pip install agentify-core[all] # Installs all optional dependencies
|
|
|
48
51
|
## Quick Start
|
|
49
52
|
|
|
50
53
|
```python
|
|
51
|
-
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress
|
|
54
|
+
from agentify import BaseAgent, AgentConfig, MemoryService, MemoryAddress, tool
|
|
52
55
|
from agentify.memory.stores import InMemoryStore
|
|
53
56
|
|
|
54
|
-
# 1. Create
|
|
57
|
+
# 1. Create a simple tool with @tool decorator
|
|
58
|
+
@tool
|
|
59
|
+
def get_time() -> dict:
|
|
60
|
+
"""Returns the current time."""
|
|
61
|
+
from datetime import datetime
|
|
62
|
+
return {"time": datetime.now().strftime("%H:%M:%S")}
|
|
63
|
+
|
|
64
|
+
# 2. Create memory service
|
|
55
65
|
memory = MemoryService(store=InMemoryStore(), log_enabled=True, max_log_length=100)
|
|
56
66
|
addr = MemoryAddress(conversation_id="session_1")
|
|
57
67
|
|
|
58
|
-
#
|
|
68
|
+
# 3. Create an Agent with the tool
|
|
59
69
|
agent = BaseAgent(
|
|
60
70
|
config=AgentConfig(
|
|
61
71
|
name="ReasoningAgent",
|
|
62
72
|
system_prompt="You are a helpful assistant.",
|
|
63
|
-
provider="
|
|
64
|
-
model_name="
|
|
73
|
+
provider="provider",
|
|
74
|
+
model_name="model",
|
|
65
75
|
reasoning_effort="high", # optional param:"low", "medium", "high"
|
|
66
76
|
model_kwargs={"max_completion_tokens": 5000} # Pass model-specific params
|
|
67
77
|
),
|
|
68
78
|
memory=memory,
|
|
69
|
-
memory_address=addr
|
|
79
|
+
memory_address=addr,
|
|
80
|
+
tools=[get_time] # Add your tools here
|
|
70
81
|
)
|
|
71
82
|
|
|
72
|
-
#
|
|
73
|
-
response = agent.run(user_input="
|
|
83
|
+
# 4. Run a conversation
|
|
84
|
+
response = agent.run(user_input="What time is it?")
|
|
74
85
|
```
|
|
75
86
|
|
|
76
87
|
## Composable Flows
|
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
# Core exports
|
|
2
|
-
from agentify.core import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
AgentConfig,
|
|
6
|
-
ImageConfig,
|
|
7
|
-
AgentCallbackHandler,
|
|
8
|
-
LoggingCallbackHandler,
|
|
9
|
-
)
|
|
2
|
+
from agentify.core.agent import BaseAgent
|
|
3
|
+
from agentify.core.config import AgentConfig, ImageConfig
|
|
4
|
+
from agentify.core.tool import Tool, tool
|
|
10
5
|
|
|
11
6
|
# LLM exports
|
|
12
|
-
from agentify.llm import LLMClientFactory
|
|
7
|
+
from agentify.llm.client import LLMClientFactory
|
|
13
8
|
|
|
14
9
|
# Memory exports
|
|
15
10
|
from agentify.memory.service import MemoryService
|
|
16
11
|
from agentify.memory.interfaces import MemoryAddress
|
|
17
12
|
from agentify.memory.policies import MemoryPolicy
|
|
18
13
|
|
|
19
|
-
__version__ = "0.
|
|
14
|
+
__version__ = "0.2.0"
|
|
20
15
|
|
|
21
16
|
__all__ = [
|
|
22
17
|
"BaseAgent",
|
|
23
|
-
"Tool",
|
|
24
18
|
"AgentConfig",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"LoggingCallbackHandler",
|
|
19
|
+
"Tool",
|
|
20
|
+
"tool",
|
|
28
21
|
"LLMClientFactory",
|
|
29
22
|
"MemoryService",
|
|
30
23
|
"MemoryAddress",
|
|
31
24
|
"MemoryPolicy",
|
|
25
|
+
"ImageConfig",
|
|
32
26
|
]
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
"""Core components for building AI agents."""
|
|
2
|
+
|
|
1
3
|
from agentify.core.agent import BaseAgent
|
|
2
|
-
from agentify.core.tool import Tool
|
|
4
|
+
from agentify.core.tool import Tool, tool
|
|
3
5
|
from agentify.core.callbacks import AgentCallbackHandler, LoggingCallbackHandler
|
|
4
6
|
from agentify.core.config import AgentConfig, ImageConfig
|
|
5
7
|
|
|
6
8
|
__all__ = [
|
|
7
9
|
"BaseAgent",
|
|
8
10
|
"Tool",
|
|
11
|
+
"tool",
|
|
9
12
|
"AgentCallbackHandler",
|
|
10
13
|
"LoggingCallbackHandler",
|
|
11
14
|
"AgentConfig",
|