praisonaiagents 0.0.9__py3-none-any.whl → 0.0.10__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,27 +21,49 @@ class Agent:
21
21
  """
22
22
  Generate a tool definition from a function name by inspecting the function.
23
23
  """
24
+ logging.debug(f"Attempting to generate tool definition for: {function_name}")
25
+
24
26
  # First try to get the tool definition if it exists
25
27
  tool_def_name = f"{function_name}_definition"
26
28
  tool_def = globals().get(tool_def_name)
29
+ logging.debug(f"Looking for {tool_def_name} in globals: {tool_def is not None}")
30
+
27
31
  if not tool_def:
28
32
  import __main__
29
33
  tool_def = getattr(__main__, tool_def_name, None)
34
+ logging.debug(f"Looking for {tool_def_name} in __main__: {tool_def is not None}")
30
35
 
31
36
  if tool_def:
37
+ logging.debug(f"Found tool definition: {tool_def}")
32
38
  return tool_def
33
39
 
34
- # If no definition exists, try to generate one from the function
35
- func = globals().get(function_name)
40
+ # Try to find the function in the agent's tools list first
41
+ func = None
42
+ for tool in self.tools:
43
+ if callable(tool) and getattr(tool, '__name__', '') == function_name:
44
+ func = tool
45
+ break
46
+
47
+ logging.debug(f"Looking for {function_name} in agent tools: {func is not None}")
48
+
49
+ # If not found in tools, try globals and main
36
50
  if not func:
37
- import __main__
38
- func = getattr(__main__, function_name, None)
51
+ func = globals().get(function_name)
52
+ logging.debug(f"Looking for {function_name} in globals: {func is not None}")
53
+
54
+ if not func:
55
+ import __main__
56
+ func = getattr(__main__, function_name, None)
57
+ logging.debug(f"Looking for {function_name} in __main__: {func is not None}")
39
58
 
40
59
  if not func or not callable(func):
60
+ logging.debug(f"Function {function_name} not found or not callable")
41
61
  return None
42
62
 
43
63
  import inspect
44
64
  sig = inspect.signature(func)
65
+ logging.debug(f"Function signature: {sig}")
66
+
45
67
  parameters = {
46
68
  "type": "object",
47
69
  "properties": {},
@@ -50,10 +72,13 @@ class Agent:
50
72
 
51
73
  # Parse docstring for parameter descriptions
52
74
  docstring = inspect.getdoc(func)
75
+ logging.debug(f"Function docstring: {docstring}")
76
+
53
77
  param_descriptions = {}
54
78
  if docstring:
55
79
  import re
56
80
  param_section = re.split(r'\s*Args:\s*', docstring)
81
+ logging.debug(f"Param section split: {param_section}")
57
82
  if len(param_section) > 1:
58
83
  param_lines = param_section[1].split('\n')
59
84
  for line in param_lines:
@@ -61,6 +86,8 @@ class Agent:
61
86
  if line and ':' in line:
62
87
  param_name, param_desc = line.split(':', 1)
63
88
  param_descriptions[param_name.strip()] = param_desc.strip()
89
+
90
+ logging.debug(f"Parameter descriptions: {param_descriptions}")
64
91
 
65
92
  for name, param in sig.parameters.items():
66
93
  param_type = "string" # Default type
@@ -83,11 +110,13 @@ class Agent:
83
110
  parameters["properties"][name] = param_info
84
111
  if param.default == inspect.Parameter.empty:
85
112
  parameters["required"].append(name)
113
+
114
+ logging.debug(f"Generated parameters: {parameters}")
86
115
 
87
116
  # Extract description from docstring
88
117
  description = docstring.split('\n')[0] if docstring else f"Function {function_name}"
89
-
90
- return {
118
+
119
+ tool_def = {
91
120
  "type": "function",
92
121
  "function": {
93
122
  "name": function_name,
@@ -95,6 +124,8 @@ class Agent:
95
124
  "parameters": parameters
96
125
  }
97
126
  }
127
+ logging.debug(f"Generated tool definition: {tool_def}")
128
+ return tool_def
98
129
 
99
130
  def __init__(
100
131
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: praisonaiagents
3
- Version: 0.0.9
3
+ Version: 0.0.10
4
4
  Summary: Praison AI agents for completing complex tasks with Self Reflection Agents
5
5
  Author: Mervin Praison
6
6
  Requires-Dist: pydantic
@@ -1,7 +1,7 @@
1
1
  praisonaiagents/__init__.py,sha256=gI8vEabBTRPsE_E8GA5sBMi4sTtJI-YokPrH2Nor-k0,741
2
2
  praisonaiagents/main.py,sha256=zDhN5KKtKbfruolDNxlyJkcFlkSt4KQkQTDRfQVAhxc,3960
3
3
  praisonaiagents/agent/__init__.py,sha256=sKO8wGEXvtCrvV1e834r1Okv0XAqAxqZCqz6hKLiTvA,79
4
- praisonaiagents/agent/agent.py,sha256=cLzo3KAHY0HfZj6kxqCe0ydsUUkh7Ml69QYEHbvZX7s,18153
4
+ praisonaiagents/agent/agent.py,sha256=p1E1TtI2AbZ7z0QZHwGG_ZvgGBGTvyEB4TX2tRXl87I,19602
5
5
  praisonaiagents/agents/__init__.py,sha256=7RDeQNSqZg5uBjD4M_0p_F6YgfWuDuxPFydPU50kDYc,120
6
6
  praisonaiagents/agents/agents.py,sha256=CBN7OQwFbTgiKXVn7o8987mBH9TUr5s721AC-FSu8AQ,13680
7
7
  praisonaiagents/build/lib/praisonaiagents/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
@@ -14,7 +14,7 @@ praisonaiagents/build/lib/praisonaiagents/task/__init__.py,sha256=VL5hXVmyGjINb3
14
14
  praisonaiagents/build/lib/praisonaiagents/task/task.py,sha256=4Y1qX8OeEFcid2yhAiPYylvHpuDmWORsyNL16_BiVvI,1831
15
15
  praisonaiagents/task/__init__.py,sha256=VL5hXVmyGjINb34AalxpBMl-YW9m5EDcRkMTKkSSl7c,80
16
16
  praisonaiagents/task/task.py,sha256=4Y1qX8OeEFcid2yhAiPYylvHpuDmWORsyNL16_BiVvI,1831
17
- praisonaiagents-0.0.9.dist-info/METADATA,sha256=ztaeKCi00IcYdLouONeGr4kQDf1sN-ppe3tSvN35amU,232
18
- praisonaiagents-0.0.9.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
19
- praisonaiagents-0.0.9.dist-info/top_level.txt,sha256=_HsRddrJ23iDx5TTqVUVvXG2HeHBL5voshncAMDGjtA,16
20
- praisonaiagents-0.0.9.dist-info/RECORD,,
17
+ praisonaiagents-0.0.10.dist-info/METADATA,sha256=YtRq0JyBXUjue9d9QuD3GpXYdCuMKRwJquyXzgGqKTo,233
18
+ praisonaiagents-0.0.10.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
19
+ praisonaiagents-0.0.10.dist-info/top_level.txt,sha256=_HsRddrJ23iDx5TTqVUVvXG2HeHBL5voshncAMDGjtA,16
20
+ praisonaiagents-0.0.10.dist-info/RECORD,,