praisonaiagents 0.0.88__tar.gz → 0.0.89__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 (51) hide show
  1. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/PKG-INFO +1 -1
  2. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/process/process.py +42 -38
  3. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/task/task.py +3 -1
  4. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents.egg-info/PKG-INFO +1 -1
  5. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/pyproject.toml +1 -1
  6. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/README.md +0 -0
  7. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/__init__.py +0 -0
  8. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agent/__init__.py +0 -0
  9. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agent/agent.py +0 -0
  10. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agent/image_agent.py +0 -0
  11. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agents/__init__.py +0 -0
  12. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agents/agents.py +0 -0
  13. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/agents/autoagents.py +0 -0
  14. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/knowledge/__init__.py +0 -0
  15. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/knowledge/chunking.py +0 -0
  16. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/knowledge/knowledge.py +0 -0
  17. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/llm/__init__.py +0 -0
  18. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/llm/llm.py +0 -0
  19. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/main.py +0 -0
  20. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/mcp/__init__.py +0 -0
  21. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/mcp/mcp.py +0 -0
  22. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/mcp/mcp_sse.py +0 -0
  23. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/memory/memory.py +0 -0
  24. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/process/__init__.py +0 -0
  25. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/task/__init__.py +0 -0
  26. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/__init__.py +0 -0
  27. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/arxiv_tools.py +0 -0
  28. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/calculator_tools.py +0 -0
  29. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/csv_tools.py +0 -0
  30. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/duckdb_tools.py +0 -0
  31. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/duckduckgo_tools.py +0 -0
  32. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/excel_tools.py +0 -0
  33. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/file_tools.py +0 -0
  34. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/json_tools.py +0 -0
  35. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/newspaper_tools.py +0 -0
  36. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/pandas_tools.py +0 -0
  37. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/python_tools.py +0 -0
  38. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/shell_tools.py +0 -0
  39. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/spider_tools.py +0 -0
  40. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/test.py +0 -0
  41. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/tools.py +0 -0
  42. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/train/data/generatecot.py +0 -0
  43. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/wikipedia_tools.py +0 -0
  44. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/xml_tools.py +0 -0
  45. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/yaml_tools.py +0 -0
  46. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents/tools/yfinance_tools.py +0 -0
  47. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents.egg-info/SOURCES.txt +0 -0
  48. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents.egg-info/dependency_links.txt +0 -0
  49. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents.egg-info/requires.txt +0 -0
  50. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/praisonaiagents.egg-info/top_level.txt +0 -0
  51. {praisonaiagents-0.0.88 → praisonaiagents-0.0.89}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonaiagents
3
- Version: 0.0.88
3
+ Version: 0.0.89
4
4
  Summary: Praison AI agents for completing complex tasks with Self Reflection Agents
5
5
  Author: Mervin Praison
6
6
  Requires-Dist: pydantic
@@ -30,6 +30,44 @@ class Process:
30
30
  self.task_retry_counter: Dict[str, int] = {} # Initialize retry counter
31
31
  self.workflow_finished = False # ADDED: Workflow finished flag
32
32
 
33
+ def _build_task_context(self, current_task: Task) -> str:
34
+ """Build context for a task based on its retain_full_context setting"""
35
+ if not (current_task.previous_tasks or current_task.context):
36
+ return ""
37
+
38
+ context = "\nInput data from previous tasks:"
39
+
40
+ if current_task.retain_full_context:
41
+ # Original behavior: include all previous tasks
42
+ for prev_name in current_task.previous_tasks:
43
+ prev_task = next((t for t in self.tasks.values() if t.name == prev_name), None)
44
+ if prev_task and prev_task.result:
45
+ context += f"\n{prev_name}: {prev_task.result.raw}"
46
+
47
+ # Add data from context tasks
48
+ if current_task.context:
49
+ for ctx_task in current_task.context:
50
+ if ctx_task.result and ctx_task.name != current_task.name:
51
+ context += f"\n{ctx_task.name}: {ctx_task.result.raw}"
52
+ else:
53
+ # New behavior: only include the most recent previous task
54
+ if current_task.previous_tasks:
55
+ # Get the most recent previous task (last in the list)
56
+ prev_name = current_task.previous_tasks[-1]
57
+ prev_task = next((t for t in self.tasks.values() if t.name == prev_name), None)
58
+ if prev_task and prev_task.result:
59
+ context += f"\n{prev_name}: {prev_task.result.raw}"
60
+
61
+ # For context tasks, still include the most recent one
62
+ if current_task.context:
63
+ # Get the most recent context task with a result
64
+ for ctx_task in reversed(current_task.context):
65
+ if ctx_task.result and ctx_task.name != current_task.name:
66
+ context += f"\n{ctx_task.name}: {ctx_task.result.raw}"
67
+ break # Only include the most recent one
68
+
69
+ return context
70
+
33
71
  def _find_next_not_started_task(self) -> Optional[Task]:
34
72
  """Fallback mechanism to find the next 'not started' task."""
35
73
  fallback_attempts = 0
@@ -147,25 +185,8 @@ Description length: {len(current_task.description)}
147
185
  """)
148
186
 
149
187
  # Add context from previous tasks to description
150
- if current_task.previous_tasks or current_task.context:
151
- context = "\nInput data from previous tasks:"
152
-
153
- # Add data from previous tasks in workflow
154
- for prev_name in current_task.previous_tasks:
155
- prev_task = next((t for t in self.tasks.values() if t.name == prev_name), None)
156
- if prev_task and prev_task.result:
157
- # Handle loop data
158
- if current_task.task_type == "loop":
159
- context += f"\n{prev_name}: {prev_task.result.raw}"
160
- else:
161
- context += f"\n{prev_name}: {prev_task.result.raw}"
162
-
163
- # Add data from context tasks
164
- if current_task.context:
165
- for ctx_task in current_task.context:
166
- if ctx_task.result and ctx_task.name != current_task.name:
167
- context += f"\n{ctx_task.name}: {ctx_task.result.raw}"
168
-
188
+ context = self._build_task_context(current_task)
189
+ if context:
169
190
  # Update task description with context
170
191
  current_task.description = current_task.description + context
171
192
 
@@ -778,25 +799,8 @@ Description length: {len(current_task.description)}
778
799
  """)
779
800
 
780
801
  # Add context from previous tasks to description
781
- if current_task.previous_tasks or current_task.context:
782
- context = "\nInput data from previous tasks:"
783
-
784
- # Add data from previous tasks in workflow
785
- for prev_name in current_task.previous_tasks:
786
- prev_task = next((t for t in self.tasks.values() if t.name == prev_name), None)
787
- if prev_task and prev_task.result:
788
- # Handle loop data
789
- if current_task.task_type == "loop":
790
- context += f"\n{prev_name}: {prev_task.result.raw}"
791
- else:
792
- context += f"\n{prev_name}: {prev_task.result.raw}"
793
-
794
- # Add data from context tasks
795
- if current_task.context:
796
- for ctx_task in current_task.context:
797
- if ctx_task.result and ctx_task.name != current_task.name:
798
- context += f"\n{ctx_task.name}: {ctx_task.result.raw}"
799
-
802
+ context = self._build_task_context(current_task)
803
+ if context:
800
804
  # Update task description with context
801
805
  current_task.description = current_task.description + context
802
806
 
@@ -39,7 +39,8 @@ class Task:
39
39
  memory=None,
40
40
  quality_check=True,
41
41
  input_file: Optional[str] = None,
42
- rerun: bool = False # Renamed from can_rerun and logic inverted, default True for backward compatibility
42
+ rerun: bool = False, # Renamed from can_rerun and logic inverted, default True for backward compatibility
43
+ retain_full_context: bool = False # By default, only use previous task output, not all previous tasks
43
44
  ):
44
45
  # Add check if memory config is provided
45
46
  if memory is not None or (config and config.get('memory_config')):
@@ -78,6 +79,7 @@ class Task:
78
79
  self.memory = memory
79
80
  self.quality_check = quality_check
80
81
  self.rerun = rerun # Assigning the rerun parameter
82
+ self.retain_full_context = retain_full_context
81
83
 
82
84
  # Set logger level based on config verbose level
83
85
  verbose = self.config.get("verbose", 0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonaiagents
3
- Version: 0.0.88
3
+ Version: 0.0.89
4
4
  Summary: Praison AI agents for completing complex tasks with Self Reflection Agents
5
5
  Author: Mervin Praison
6
6
  Requires-Dist: pydantic
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "praisonaiagents"
7
- version = "0.0.88"
7
+ version = "0.0.89"
8
8
  description = "Praison AI agents for completing complex tasks with Self Reflection Agents"
9
9
  authors = [
10
10
  { name="Mervin Praison" }