beswarm 0.2.61__py3-none-any.whl → 0.2.63__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.
beswarm/agents/planact.py CHANGED
@@ -17,6 +17,18 @@ from ..aient.aient.plugins import get_function_call_list, registry
17
17
  from ..prompt import worker_system_prompt, instruction_system_prompt
18
18
  from ..utils import extract_xml_content, get_current_screen_image_message, replace_xml_content, register_mcp_tools, setup_logger
19
19
 
20
+ try:
21
+ from importlib import metadata
22
+ version = metadata.version("beswarm")
23
+ except metadata.PackageNotFoundError:
24
+ try:
25
+ beswarm_dir = Path(__file__).parent.parent.parent
26
+ with open(beswarm_dir / "pyproject.toml", "rb") as f:
27
+ pyproject_data = tomllib.load(f)
28
+ version = pyproject_data["project"]["version"]
29
+ except FileNotFoundError:
30
+ version = "unknown"
31
+
20
32
  class BaseAgent:
21
33
  """Base class for agents, handling common initialization and disposal."""
22
34
  def __init__(self, goal: str, tools_json: List, agent_config: Dict, work_dir: str, cache_messages: Union[bool, List[Dict]], broker: MessageBroker, listen_topic: str, publish_topic: str, status_topic: str, graph_update_topic: str = None):
@@ -255,14 +267,9 @@ class BrokerWorker:
255
267
  # 创建一个文件处理器,将日志写入任务自己的目录
256
268
  log_file_path = cache_dir / "agent.log"
257
269
  self.logger = setup_logger(f"task_{self.work_dir.name}", log_file_path)
270
+ self.logger.info(f"beswarm version: {version}")
258
271
  self.logger.info(f"Logger for task '{self.goal}' initialized. Log file: {log_file_path}")
259
272
 
260
- beswarm_dir = Path(__file__).parent.parent.parent
261
- with open(beswarm_dir / "pyproject.toml", "rb") as f:
262
- pyproject_data = tomllib.load(f)
263
- version = pyproject_data["project"]["version"]
264
- self.logger.info(f"beswarm version: {version}")
265
-
266
273
  async def _configure_tools(self):
267
274
  mcp_list = [item for item in self.tools if isinstance(item, dict)]
268
275
  if mcp_list:
@@ -33,6 +33,10 @@ class ModelNotFoundError(Exception):
33
33
  """Custom exception for model not found (404) errors."""
34
34
  pass
35
35
 
36
+ class RateLimitError(Exception):
37
+ """Custom exception for rate limit (429) errors."""
38
+ pass
39
+
36
40
  class TaskComplete(Exception):
37
41
  """Exception-like signal to indicate the task is complete."""
38
42
  def __init__(self, message):
@@ -778,6 +782,8 @@ class chatgpt(BaseLLM):
778
782
  raise APITimeoutError("Response timeout")
779
783
  if "HTTP Error', 'status_code': 404" in processed_chunk:
780
784
  raise ModelNotFoundError(f"Model: {model or self.engine} not found!")
785
+ if "HTTP Error', 'status_code': 429" in processed_chunk:
786
+ raise RateLimitError(f"Rate limit exceeded for model: {model or self.engine}")
781
787
  yield processed_chunk
782
788
  index += 1
783
789
 
@@ -791,6 +797,9 @@ class chatgpt(BaseLLM):
791
797
  except APITimeoutError:
792
798
  self.logger.warning("API response timeout (524), retrying...")
793
799
  continue
800
+ except RateLimitError as e:
801
+ self.logger.warning(f"{e}, retrying...")
802
+ continue
794
803
  except ValidationError as e:
795
804
  self.logger.warning(f"Validation failed: {e}. Retrying with corrective prompt.")
796
805
  need_done_prompt = [
@@ -941,4 +950,4 @@ class chatgpt(BaseLLM):
941
950
  {"role": "system", "content": self.system_prompt},
942
951
  ]
943
952
  self.tokens_usage[convo_id] = 0
944
- self.current_tokens[convo_id] = 0
953
+ self.current_tokens[convo_id] = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beswarm
3
- Version: 0.2.61
3
+ Version: 0.2.63
4
4
  Summary: MAS
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -6,7 +6,7 @@ beswarm/prompt.py,sha256=INVRWQZP6lysvGUcPOYI_er5-bi1gGe_qa6BTov7PmY,32362
6
6
  beswarm/taskmanager.py,sha256=vMmcoZ4FlNvjEliRkv3AniPji50NcY4Q1_2HETzR0DU,12226
7
7
  beswarm/utils.py,sha256=0J-b38P5QGT-A_38co7FjzaUNJykaskI7mbbcQ4w_68,8215
8
8
  beswarm/agents/chatgroup.py,sha256=PzrmRcDKAbB7cxL16nMod_CzPosDV6bfTmXxQVuv-AQ,12012
9
- beswarm/agents/planact.py,sha256=y6NtiiQC1SIkJCWeK4REoR8yRoMllRda5aiVeXhDZdE,20082
9
+ beswarm/agents/planact.py,sha256=z-RDEgDilrT6hNIN4G_3m04iJ698qyovZ5WG6QdywdA,20265
10
10
  beswarm/aient/aient/__init__.py,sha256=SRfF7oDVlOOAi6nGKiJIUK6B_arqYLO9iSMp-2IZZps,21
11
11
  beswarm/aient/aient/core/__init__.py,sha256=NxjebTlku35S4Dzr16rdSqSTWUvvwEeACe8KvHJnjPg,34
12
12
  beswarm/aient/aient/core/log_config.py,sha256=kz2_yJv1p-o3lUQOwA3qh-LSc3wMHv13iCQclw44W9c,274
@@ -21,7 +21,7 @@ beswarm/aient/aient/core/test/test_payload.py,sha256=8jBiJY1uidm1jzL-EiK0s6UGmW9
21
21
  beswarm/aient/aient/models/__init__.py,sha256=ZTiZgbfBPTjIPSKURE7t6hlFBVLRS9lluGbmqc1WjxQ,43
22
22
  beswarm/aient/aient/models/audio.py,sha256=kRd-8-WXzv4vwvsTGwnstK-WR8--vr9CdfCZzu8y9LA,1934
23
23
  beswarm/aient/aient/models/base.py,sha256=-nnihYnx-vHZMqeVO9ljjt3k4FcD3n-iMk4tT-10nRQ,7232
24
- beswarm/aient/aient/models/chatgpt.py,sha256=q62B6cbtHqKrqsQjM24k_1wi_5-UiuxkXa7e2yG_Clg,44661
24
+ beswarm/aient/aient/models/chatgpt.py,sha256=37Vafo8iqV1CNvTT2Ai7ar2QAmWsSiwt1o9y-d9kXcI,45071
25
25
  beswarm/aient/aient/plugins/__init__.py,sha256=p3KO6Aa3Lupos4i2SjzLQw1hzQTigOAfEHngsldrsyk,986
26
26
  beswarm/aient/aient/plugins/arXiv.py,sha256=yHjb6PS3GUWazpOYRMKMzghKJlxnZ5TX8z9F6UtUVow,1461
27
27
  beswarm/aient/aient/plugins/config.py,sha256=TGgZ5SnNKZ8MmdznrZ-TEq7s2ulhAAwTSKH89bci3dA,7079
@@ -116,7 +116,7 @@ beswarm/tools/search_web.py,sha256=NYrb5KL_WUGPm-fOKT8Cyjon04lxBU-gaLdrVjeYgGo,1
116
116
  beswarm/tools/subtasks.py,sha256=mIjA2QrRy9Fos4rYm8fCfu2QrsE_MGnQI9IR8dOxsGs,9885
117
117
  beswarm/tools/worker.py,sha256=_cSkRUKRJMAiZiTfnBze_e9Kc7k7KvbB5hdxdvp4FW4,2009
118
118
  beswarm/tools/write_csv.py,sha256=u0Hq18Ksfheb52MVtyLNCnSDHibITpsYBPs2ub7USYA,1466
119
- beswarm-0.2.61.dist-info/METADATA,sha256=s14zUG7R6_2LWhXRMX-UZF0MQeh06d0bmX84pH5KlhU,3878
120
- beswarm-0.2.61.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
121
- beswarm-0.2.61.dist-info/top_level.txt,sha256=pJw4O87wvt5882smuSO6DfByJz7FJ8SxxT8h9fHCmpo,8
122
- beswarm-0.2.61.dist-info/RECORD,,
119
+ beswarm-0.2.63.dist-info/METADATA,sha256=lMyXTP2gr3sg_Dz7ibk9o--waz6bv5f6CASmSYOdAsQ,3878
120
+ beswarm-0.2.63.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
121
+ beswarm-0.2.63.dist-info/top_level.txt,sha256=pJw4O87wvt5882smuSO6DfByJz7FJ8SxxT8h9fHCmpo,8
122
+ beswarm-0.2.63.dist-info/RECORD,,