unique_toolkit 1.43.9__py3-none-any.whl → 1.43.10__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.
@@ -12,6 +12,7 @@ from unique_toolkit.agentic.loop_runner.middleware import (
12
12
  from unique_toolkit.agentic.loop_runner.runners import (
13
13
  QWEN_FORCED_TOOL_CALL_INSTRUCTION,
14
14
  QWEN_LAST_ITERATION_INSTRUCTION,
15
+ QWEN_MAX_LOOP_ITERATIONS,
15
16
  BasicLoopIterationRunner,
16
17
  BasicLoopIterationRunnerConfig,
17
18
  QwenLoopIterationRunner,
@@ -32,4 +33,5 @@ __all__ = [
32
33
  "handle_normal_iteration",
33
34
  "QWEN_FORCED_TOOL_CALL_INSTRUCTION",
34
35
  "QWEN_LAST_ITERATION_INSTRUCTION",
36
+ "QWEN_MAX_LOOP_ITERATIONS",
35
37
  ]
@@ -5,6 +5,7 @@ from unique_toolkit.agentic.loop_runner.runners.basic import (
5
5
  from unique_toolkit.agentic.loop_runner.runners.qwen import (
6
6
  QWEN_FORCED_TOOL_CALL_INSTRUCTION,
7
7
  QWEN_LAST_ITERATION_INSTRUCTION,
8
+ QWEN_MAX_LOOP_ITERATIONS,
8
9
  QwenLoopIterationRunner,
9
10
  is_qwen_model,
10
11
  )
@@ -15,5 +16,6 @@ __all__ = [
15
16
  "QwenLoopIterationRunner",
16
17
  "QWEN_FORCED_TOOL_CALL_INSTRUCTION",
17
18
  "QWEN_LAST_ITERATION_INSTRUCTION",
19
+ "QWEN_MAX_LOOP_ITERATIONS",
18
20
  "is_qwen_model",
19
21
  ]
@@ -4,6 +4,7 @@ from unique_toolkit.agentic.loop_runner.runners.qwen.helpers import (
4
4
  from unique_toolkit.agentic.loop_runner.runners.qwen.qwen_runner import (
5
5
  QWEN_FORCED_TOOL_CALL_INSTRUCTION,
6
6
  QWEN_LAST_ITERATION_INSTRUCTION,
7
+ QWEN_MAX_LOOP_ITERATIONS,
7
8
  QwenLoopIterationRunner,
8
9
  )
9
10
 
@@ -12,4 +13,5 @@ __all__ = [
12
13
  "is_qwen_model",
13
14
  "QWEN_FORCED_TOOL_CALL_INSTRUCTION",
14
15
  "QWEN_LAST_ITERATION_INSTRUCTION",
16
+ "QWEN_MAX_LOOP_ITERATIONS",
15
17
  ]
@@ -18,13 +18,16 @@ from unique_toolkit.chat.service import ChatService, LanguageModelStreamResponse
18
18
 
19
19
  _LOGGER = logging.getLogger(__name__)
20
20
 
21
+ QWEN_MAX_LOOP_ITERATIONS = 3
22
+
21
23
  QWEN_FORCED_TOOL_CALL_INSTRUCTION = (
22
24
  "**Tool Call Instruction:** \nYou MUST call the tool {TOOL_NAME}. "
23
25
  "You must start the response with <tool_call>. "
24
26
  "Do NOT provide natural language explanations, summaries, or any text outside the <tool_call> block."
25
27
  )
26
28
 
27
- QWEN_LAST_ITERATION_INSTRUCTION = "The maximum number of loop iteration have been reached. Not further tool calls are allowed. Based on the found information, an answer should be generated"
29
+ QWEN_LAST_ITERATION_INSTRUCTION = """The maximum number of loop iteration have been reached. Not further tool calls are allowed.
30
+ Based on the found information, an answer should be generated"""
28
31
 
29
32
 
30
33
  class QwenLoopIterationRunner(LoopIterationRunner):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.43.9
3
+ Version: 1.43.10
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -125,8 +125,10 @@ All notable changes to this project will be documented in this file.
125
125
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
126
126
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
127
127
 
128
+ ## [1.43.10] - 2026-01-21
129
+ - Lowering the max iterations of the main agents and hard blocking Qwen3 from using too many agent rounds
130
+
128
131
  ## [1.43.9] - 2026-01-20
129
- ### Fixed
130
132
  - Fix system message role conversion in responses API mode (was incorrectly set to "user", now correctly set to "system")
131
133
 
132
134
  ## [1.43.8] - 2026-01-16
@@ -90,7 +90,7 @@ unique_toolkit/agentic/history_manager/history_construction_with_contents.py,sha
90
90
  unique_toolkit/agentic/history_manager/history_manager.py,sha256=7V7_173XkAjc8otBACF0G3dbqRs34FSlURbBPrE95Wk,9537
91
91
  unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=3c-uonDovtanEJUpAO4zlA4-n9MS_Ws_V0Yb6G7hPM0,20172
92
92
  unique_toolkit/agentic/history_manager/utils.py,sha256=VIn_UmcR3jHtpux0qp5lQQzczgAm8XYSeQiPo87jC3A,3143
93
- unique_toolkit/agentic/loop_runner/__init__.py,sha256=3Ddm4WXa5KBTwScvmn6INmBBcuFVfJGriOE6VUfGVkM,1037
93
+ unique_toolkit/agentic/loop_runner/__init__.py,sha256=26SAJn737LLmc3RoT6PPoPIeI80nlNWobHK6-Vz8HeI,1099
94
94
  unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py,sha256=czwTbMMmikppRjAA2wpx-UZGub8KrpSoWfojklr-5sE,3261
95
95
  unique_toolkit/agentic/loop_runner/_stream_handler_utils.py,sha256=FTGc5y8wkDnwnRVSYEdandgKz-FiySOsrTFFMadwP6E,1706
96
96
  unique_toolkit/agentic/loop_runner/base.py,sha256=3g4PalzV00o8kcRwHds2c2rtxW4idD7_7vS2Z7GkMvQ,1370
@@ -98,11 +98,11 @@ unique_toolkit/agentic/loop_runner/middleware/__init__.py,sha256=5yhFZ14_C1qAt-M
98
98
  unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py,sha256=Y9MlihNA8suNREixW98RF45bj0EMtD_tQuDrO2MEML4,304
99
99
  unique_toolkit/agentic/loop_runner/middleware/planning/planning.py,sha256=s6SAP3BCCExgwnyRj_bZTaWgTOiNVju5qcJA0WFUUoE,3216
100
100
  unique_toolkit/agentic/loop_runner/middleware/planning/schema.py,sha256=76C36CWCLfDAYYqtaQlhXsmkWM1fCqf8j-l5afQREKA,2869
101
- unique_toolkit/agentic/loop_runner/runners/__init__.py,sha256=9aUSdHgwAfwEmvE_xL7luxmaL2HaU-fG_x-HLbHls9k,536
101
+ unique_toolkit/agentic/loop_runner/runners/__init__.py,sha256=JLBzWjOvTScIVHafeoqG1ZS3syLrYPBDzIfBuJFOw8s,598
102
102
  unique_toolkit/agentic/loop_runner/runners/basic.py,sha256=PKg7AXp5_2OJpJX8b7_5u0jBKffX5mg8X6DFk98sSwA,1535
103
- unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py,sha256=b2zAQIjtPy_BBQeDHsdfDLTKigI11w7tXHgUGNnFIiU,419
103
+ unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py,sha256=RRT2Q_eeEjtAMsPJC7sYHSlY8clGYXRtQPQhA3HkHF0,481
104
104
  unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py,sha256=JBnxeYKu8HiUq3VHjnb8XdHCe1c3cJ3OwagckF4UvnU,1763
105
- unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py,sha256=7tYfTkNKwxYVn6C1Htya5QEIK2BfWkxCPNkdMoaZGq0,4920
105
+ unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py,sha256=Qz_kwUUjLDUPBGM0hRVZSwVLYJ1fX5V646oU8AObIUw,4954
106
106
  unique_toolkit/agentic/message_log_manager/__init__.py,sha256=3-KY_sGkPbNoSnrzwPY0FQIJNnsz4NHXvocXgGRUeuE,169
107
107
  unique_toolkit/agentic/message_log_manager/service.py,sha256=DeixRsgmyDdWsL-4e12flB9d-Uy7s0X52upPIbTn6vA,5895
108
108
  unique_toolkit/agentic/postprocessor/postprocessor_manager.py,sha256=CoKzVFeLIr1eRP3ZLnmUJ8KNsFLyvK5iuvUilbcGAm0,7662
@@ -242,7 +242,7 @@ unique_toolkit/short_term_memory/service.py,sha256=5PeVBu1ZCAfyDb2HLVvlmqSbyzBBu
242
242
  unique_toolkit/smart_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
243
  unique_toolkit/smart_rules/compile.py,sha256=Ozhh70qCn2yOzRWr9d8WmJeTo7AQurwd3tStgBMPFLA,1246
244
244
  unique_toolkit/test_utilities/events.py,sha256=_mwV2bs5iLjxS1ynDCjaIq-gjjKhXYCK-iy3dRfvO3g,6410
245
- unique_toolkit-1.43.9.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
246
- unique_toolkit-1.43.9.dist-info/METADATA,sha256=LPHaOz0muC2DPOKCYDQxA8Xn5O7Sc39uyXJdOcz0j_w,48369
247
- unique_toolkit-1.43.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
248
- unique_toolkit-1.43.9.dist-info/RECORD,,
245
+ unique_toolkit-1.43.10.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
246
+ unique_toolkit-1.43.10.dist-info/METADATA,sha256=5ce6HRrSJHrufcs3V-HR5-6AKH10CHiLZM6D9WtSj-0,48493
247
+ unique_toolkit-1.43.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
248
+ unique_toolkit-1.43.10.dist-info/RECORD,,