camel-ai 0.2.71a4__py3-none-any.whl → 0.2.71a6__py3-none-any.whl

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.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (36) hide show
  1. camel/__init__.py +1 -1
  2. camel/agents/chat_agent.py +1533 -135
  3. camel/agents/repo_agent.py +2 -1
  4. camel/benchmarks/browsecomp.py +6 -6
  5. camel/logger.py +1 -1
  6. camel/messages/base.py +12 -1
  7. camel/models/azure_openai_model.py +96 -7
  8. camel/models/base_model.py +68 -10
  9. camel/models/deepseek_model.py +5 -0
  10. camel/models/gemini_model.py +5 -0
  11. camel/models/litellm_model.py +48 -16
  12. camel/models/model_manager.py +24 -6
  13. camel/models/openai_compatible_model.py +109 -5
  14. camel/models/openai_model.py +117 -8
  15. camel/societies/workforce/prompts.py +68 -5
  16. camel/societies/workforce/role_playing_worker.py +65 -7
  17. camel/societies/workforce/single_agent_worker.py +72 -18
  18. camel/societies/workforce/structured_output_handler.py +500 -0
  19. camel/societies/workforce/utils.py +67 -2
  20. camel/societies/workforce/workforce.py +527 -114
  21. camel/societies/workforce/workforce_logger.py +0 -8
  22. camel/tasks/task.py +3 -1
  23. camel/toolkits/__init__.py +2 -0
  24. camel/toolkits/file_write_toolkit.py +526 -121
  25. camel/toolkits/hybrid_browser_toolkit/actions.py +235 -60
  26. camel/toolkits/hybrid_browser_toolkit/agent.py +25 -8
  27. camel/toolkits/hybrid_browser_toolkit/browser_session.py +574 -164
  28. camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +996 -126
  29. camel/toolkits/hybrid_browser_toolkit/stealth_config.py +116 -0
  30. camel/toolkits/hybrid_browser_toolkit/stealth_script.js +0 -0
  31. camel/toolkits/message_agent_toolkit.py +608 -0
  32. camel/toolkits/note_taking_toolkit.py +7 -13
  33. {camel_ai-0.2.71a4.dist-info → camel_ai-0.2.71a6.dist-info}/METADATA +6 -4
  34. {camel_ai-0.2.71a4.dist-info → camel_ai-0.2.71a6.dist-info}/RECORD +36 -32
  35. {camel_ai-0.2.71a4.dist-info → camel_ai-0.2.71a6.dist-info}/WHEEL +0 -0
  36. {camel_ai-0.2.71a4.dist-info → camel_ai-0.2.71a6.dist-info}/licenses/LICENSE +0 -0
@@ -180,7 +180,6 @@ class WorkforceLogger:
180
180
  self,
181
181
  task_id: str,
182
182
  error_message: str,
183
- error_type: str,
184
183
  worker_id: Optional[str] = None,
185
184
  metadata: Optional[Dict[str, Any]] = None,
186
185
  ) -> None:
@@ -190,7 +189,6 @@ class WorkforceLogger:
190
189
  task_id=task_id,
191
190
  worker_id=worker_id,
192
191
  error_message=error_message,
193
- error_type=error_type,
194
192
  metadata=metadata or {},
195
193
  )
196
194
  if task_id in self._task_hierarchy:
@@ -484,7 +482,6 @@ class WorkforceLogger:
484
482
  'total_tasks_created': 0,
485
483
  'total_tasks_completed': 0,
486
484
  'total_tasks_failed': 0,
487
- 'error_types_count': {},
488
485
  'worker_utilization': {},
489
486
  'current_pending_tasks': 0,
490
487
  'total_workforce_running_time_seconds': 0.0,
@@ -560,11 +557,6 @@ class WorkforceLogger:
560
557
  tasks_handled_by_worker[worker_id] = (
561
558
  tasks_handled_by_worker.get(worker_id, 0) + 1
562
559
  )
563
- error_type = entry['error_type']
564
- kpis['error_types_count'][error_type] = (
565
- kpis['error_types_count'].get(error_type, 0) + 1
566
- )
567
-
568
560
  elif event_type == 'queue_status':
569
561
  pass # Placeholder for now
570
562
 
camel/tasks/task.py CHANGED
@@ -184,7 +184,7 @@ def parse_response(
184
184
  tasks = []
185
185
  if task_id is None:
186
186
  task_id = "0"
187
- for i, content in enumerate(tasks_content):
187
+ for i, content in enumerate(tasks_content, 1):
188
188
  stripped_content = content.strip()
189
189
  # validate subtask content before creating the task
190
190
  if validate_task_content(stripped_content, f"{task_id}.{i}"):
@@ -430,6 +430,8 @@ class Task(BaseModel):
430
430
  tasks = task_parser(response.msg.content, self.id)
431
431
  for task in tasks:
432
432
  task.additional_info = self.additional_info
433
+ task.parent = self
434
+ self.subtasks = tasks
433
435
  return tasks
434
436
 
435
437
  def compose(
@@ -83,6 +83,7 @@ from .google_drive_mcp_toolkit import GoogleDriveMCPToolkit
83
83
  from .craw4ai_toolkit import Crawl4AIToolkit
84
84
  from .markitdown_toolkit import MarkItDownToolkit
85
85
  from .note_taking_toolkit import NoteTakingToolkit
86
+ from .message_agent_toolkit import AgentCommunicationToolkit
86
87
 
87
88
  __all__ = [
88
89
  'BaseToolkit',
@@ -154,4 +155,5 @@ __all__ = [
154
155
  'Crawl4AIToolkit',
155
156
  'MarkItDownToolkit',
156
157
  'NoteTakingToolkit',
158
+ 'AgentCommunicationToolkit',
157
159
  ]