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.
Files changed (47) hide show
  1. {agentify_core-0.1.4/agentify_core.egg-info → agentify_core-0.2.0}/PKG-INFO +21 -10
  2. {agentify_core-0.1.4 → agentify_core-0.2.0}/README.md +20 -14
  3. {agentify_core-0.1.4 → agentify_core-0.2.0}/README_PYPI.md +20 -9
  4. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/__init__.py +8 -14
  5. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/__init__.py +4 -1
  6. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/agent.py +428 -25
  7. agentify_core-0.2.0/agentify/core/tool.py +171 -0
  8. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/llm/client.py +109 -2
  9. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/service.py +12 -12
  10. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/hierarchical.py +23 -1
  11. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/pipeline.py +59 -1
  12. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/team.py +27 -1
  13. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/tool_wrapper.py +117 -6
  14. {agentify_core-0.1.4 → agentify_core-0.2.0/agentify_core.egg-info}/PKG-INFO +21 -10
  15. {agentify_core-0.1.4 → agentify_core-0.2.0}/pyproject.toml +1 -1
  16. agentify_core-0.1.4/agentify/core/tool.py +0 -30
  17. {agentify_core-0.1.4 → agentify_core-0.2.0}/LICENSE +0 -0
  18. {agentify_core-0.1.4 → agentify_core-0.2.0}/MANIFEST.in +0 -0
  19. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/callbacks.py +0 -0
  20. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/core/config.py +0 -0
  21. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/__init__.py +0 -0
  22. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/prompts/__init__.py +0 -0
  23. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/prompts/assistant.py +0 -0
  24. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/__init__.py +0 -0
  25. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/calculator.py +0 -0
  26. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/filesystem.py +0 -0
  27. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/planning.py +0 -0
  28. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/time.py +0 -0
  29. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/extensions/tools/weather.py +0 -0
  30. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/llm/__init__.py +0 -0
  31. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/__init__.py +0 -0
  32. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/interfaces.py +0 -0
  33. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/policies.py +0 -0
  34. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/__init__.py +0 -0
  35. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/in_memory_store.py +0 -0
  36. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/memory/stores/redis_store.py +0 -0
  37. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/multi_agent/__init__.py +0 -0
  38. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/utils/__init__.py +0 -0
  39. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify/utils/style.py +0 -0
  40. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/SOURCES.txt +0 -0
  41. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/dependency_links.txt +0 -0
  42. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/requires.txt +0 -0
  43. {agentify_core-0.1.4 → agentify_core-0.2.0}/agentify_core.egg-info/top_level.txt +0 -0
  44. {agentify_core-0.1.4 → agentify_core-0.2.0}/requirements.txt +0 -0
  45. {agentify_core-0.1.4 → agentify_core-0.2.0}/setup.cfg +0 -0
  46. {agentify_core-0.1.4 → agentify_core-0.2.0}/tests/test_filesystem_tools.py +0 -0
  47. {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.1.4
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
- Type-annotated tool interface, straightforward registration of custom tools.
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 memory service
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
- # 2. Create an Agent
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="openai",
111
- model_name="gpt-5",
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
- # 3. Run a conversation
120
- response = agent.run(user_input="Hello! How can you help me?")
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
- Type-annotated tool interface, straightforward registration of custom tools.
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 memory service
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
- # 2. Create an Agent
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="openai",
64
- model_name="gpt-5",
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
- # 3. Run a conversation
73
- response = agent.run(user_input="Hello! How can you help me?")
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
- Type-annotated tool interface, straightforward registration of custom tools.
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 memory service
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
- # 2. Create an Agent
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="openai",
64
- model_name="gpt-5",
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
- # 3. Run a conversation
73
- response = agent.run(user_input="Hello! How can you help me?")
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
- BaseAgent,
4
- Tool,
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.1.3"
14
+ __version__ = "0.2.0"
20
15
 
21
16
  __all__ = [
22
17
  "BaseAgent",
23
- "Tool",
24
18
  "AgentConfig",
25
- "ImageConfig",
26
- "AgentCallbackHandler",
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",