unique_orchestrator 1.6.1__tar.gz → 1.7.1__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.
Potentially problematic release.
This version of unique_orchestrator might be problematic. Click here for more details.
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/CHANGELOG.md +7 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/PKG-INFO +8 -1
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/pyproject.toml +1 -1
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/config.py +7 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/unique_ai.py +13 -2
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/unique_ai_builder.py +16 -20
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/LICENSE +0 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/README.md +0 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/prompts/generic_reference_prompt.jinja2 +0 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/prompts/system_prompt.jinja2 +0 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/prompts/user_message_prompt.jinja2 +0 -0
- {unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/tests/test_unique_ai_reference_order.py +0 -0
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.7.1] - 2025-10-30
|
|
9
|
+
- Fixing that system format info is only appended to system prompt if tool is called
|
|
10
|
+
|
|
11
|
+
## [1.7.0] - 2025-10-30
|
|
12
|
+
- Add option to customize the display of tool progress statuses.
|
|
13
|
+
- Make follow-questions postprocessor run last to make sure the follow up questions are displayed last.
|
|
14
|
+
|
|
8
15
|
## [1.6.1] - 2025-10-28
|
|
9
16
|
- Removing unused experimental config `full_sources_serialize_dump` in `history_manager`
|
|
10
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_orchestrator
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.1
|
|
4
4
|
Summary:
|
|
5
5
|
License: Proprietary
|
|
6
6
|
Author: Andreas Hauri
|
|
@@ -33,6 +33,13 @@ All notable changes to this project will be documented in this file.
|
|
|
33
33
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
34
34
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
35
35
|
|
|
36
|
+
## [1.7.1] - 2025-10-30
|
|
37
|
+
- Fixing that system format info is only appended to system prompt if tool is called
|
|
38
|
+
|
|
39
|
+
## [1.7.0] - 2025-10-30
|
|
40
|
+
- Add option to customize the display of tool progress statuses.
|
|
41
|
+
- Make follow-questions postprocessor run last to make sure the follow up questions are displayed last.
|
|
42
|
+
|
|
36
43
|
## [1.6.1] - 2025-10-28
|
|
37
44
|
- Removing unused experimental config `full_sources_serialize_dump` in `history_manager`
|
|
38
45
|
|
|
@@ -33,6 +33,9 @@ from unique_toolkit.agentic.tools.openai_builtin.manager import (
|
|
|
33
33
|
OpenAICodeInterpreterConfig,
|
|
34
34
|
)
|
|
35
35
|
from unique_toolkit.agentic.tools.tool import ToolBuildConfig
|
|
36
|
+
from unique_toolkit.agentic.tools.tool_progress_reporter import (
|
|
37
|
+
ToolProgressReporterConfig,
|
|
38
|
+
)
|
|
36
39
|
from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
|
|
37
40
|
from unique_web_search.config import WebSearchConfig
|
|
38
41
|
from unique_web_search.service import WebSearchTool
|
|
@@ -191,6 +194,10 @@ class UniqueAIServices(BaseModel):
|
|
|
191
194
|
|
|
192
195
|
uploaded_content_config: UploadedContentConfig = UploadedContentConfig()
|
|
193
196
|
|
|
197
|
+
tool_progress_reporter_config: ToolProgressReporterConfig = (
|
|
198
|
+
ToolProgressReporterConfig()
|
|
199
|
+
)
|
|
200
|
+
|
|
194
201
|
|
|
195
202
|
class InputTokenDistributionConfig(BaseModel):
|
|
196
203
|
model_config = get_configuration_dict(frozen=True)
|
|
@@ -261,7 +261,10 @@ class UniqueAI:
|
|
|
261
261
|
for prompts in self._tool_manager.get_tool_prompts()
|
|
262
262
|
]
|
|
263
263
|
|
|
264
|
-
used_tools = [
|
|
264
|
+
used_tools = [t.name for t in self._history_manager.get_tool_calls()]
|
|
265
|
+
sub_agent_calls = self._tool_manager.filter_tool_calls(
|
|
266
|
+
self._history_manager.get_tool_calls(), ["subagent"]
|
|
267
|
+
)
|
|
265
268
|
|
|
266
269
|
mcp_server_user_prompts = [
|
|
267
270
|
mcp_server.user_prompt for mcp_server in self._mcp_servers
|
|
@@ -274,6 +277,7 @@ class UniqueAI:
|
|
|
274
277
|
if (
|
|
275
278
|
self._config.agent.experimental.sub_agents_config.referencing_config
|
|
276
279
|
is not None
|
|
280
|
+
and len(sub_agent_calls) > 0
|
|
277
281
|
):
|
|
278
282
|
use_sub_agent_references = True
|
|
279
283
|
sub_agent_referencing_instructions = self._config.agent.experimental.sub_agents_config.referencing_config.referencing_instructions_for_user_prompt
|
|
@@ -298,7 +302,10 @@ class UniqueAI:
|
|
|
298
302
|
# TODO: Collect tool information here and adapt to system prompt
|
|
299
303
|
tool_descriptions = self._tool_manager.get_tool_prompts()
|
|
300
304
|
|
|
301
|
-
used_tools = [
|
|
305
|
+
used_tools = [t.name for t in self._history_manager.get_tool_calls()]
|
|
306
|
+
sub_agent_calls = self._tool_manager.filter_tool_calls(
|
|
307
|
+
self._history_manager.get_tool_calls(), ["subagent"]
|
|
308
|
+
)
|
|
302
309
|
|
|
303
310
|
system_prompt_template = jinja2.Template(
|
|
304
311
|
self._config.agent.prompt_config.system_prompt_template
|
|
@@ -313,6 +320,7 @@ class UniqueAI:
|
|
|
313
320
|
if (
|
|
314
321
|
self._config.agent.experimental.sub_agents_config.referencing_config
|
|
315
322
|
is not None
|
|
323
|
+
and len(sub_agent_calls) > 0
|
|
316
324
|
):
|
|
317
325
|
use_sub_agent_references = True
|
|
318
326
|
sub_agent_referencing_instructions = self._config.agent.experimental.sub_agents_config.referencing_config.referencing_instructions_for_system_prompt
|
|
@@ -382,6 +390,9 @@ class UniqueAI:
|
|
|
382
390
|
# Append function calls to history
|
|
383
391
|
self._history_manager._append_tool_calls_to_history(tool_calls)
|
|
384
392
|
|
|
393
|
+
for tool_call in tool_calls:
|
|
394
|
+
self._history_manager.add_tool_call(tool_call)
|
|
395
|
+
|
|
385
396
|
# Execute tool calls
|
|
386
397
|
tool_call_responses = await self._tool_manager.execute_selected_tools(
|
|
387
398
|
tool_calls
|
{unique_orchestrator-1.6.1 → unique_orchestrator-1.7.1}/unique_orchestrator/unique_ai_builder.py
RENAMED
|
@@ -31,7 +31,6 @@ from unique_toolkit.agentic.history_manager.history_manager import (
|
|
|
31
31
|
HistoryManagerConfig,
|
|
32
32
|
)
|
|
33
33
|
from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
|
|
34
|
-
Postprocessor,
|
|
35
34
|
PostprocessorManager,
|
|
36
35
|
)
|
|
37
36
|
from unique_toolkit.agentic.reference_manager.reference_manager import ReferenceManager
|
|
@@ -107,13 +106,13 @@ class _CommonComponents(NamedTuple):
|
|
|
107
106
|
reference_manager: ReferenceManager
|
|
108
107
|
history_manager: HistoryManager
|
|
109
108
|
evaluation_manager: EvaluationManager
|
|
109
|
+
postprocessor_manager: PostprocessorManager
|
|
110
110
|
# Tool Manager Components
|
|
111
111
|
tool_progress_reporter: ToolProgressReporter
|
|
112
112
|
tool_manager_config: ToolManagerConfig
|
|
113
113
|
mcp_manager: MCPManager
|
|
114
114
|
a2a_manager: A2AManager
|
|
115
115
|
mcp_servers: list[McpServer]
|
|
116
|
-
postprocessors: list[Postprocessor]
|
|
117
116
|
|
|
118
117
|
|
|
119
118
|
def _build_common(
|
|
@@ -127,7 +126,10 @@ def _build_common(
|
|
|
127
126
|
|
|
128
127
|
uploaded_documents = content_service.get_documents_uploaded_to_chat()
|
|
129
128
|
|
|
130
|
-
tool_progress_reporter = ToolProgressReporter(
|
|
129
|
+
tool_progress_reporter = ToolProgressReporter(
|
|
130
|
+
chat_service=chat_service,
|
|
131
|
+
config=config.agent.services.tool_progress_reporter_config,
|
|
132
|
+
)
|
|
131
133
|
thinking_manager_config = ThinkingManagerConfig(
|
|
132
134
|
thinking_steps_display=config.agent.experimental.thinking_steps_display
|
|
133
135
|
)
|
|
@@ -178,10 +180,13 @@ def _build_common(
|
|
|
178
180
|
max_tool_calls=config.agent.experimental.loop_configuration.max_tool_calls_per_iteration,
|
|
179
181
|
)
|
|
180
182
|
|
|
181
|
-
|
|
183
|
+
postprocessor_manager = PostprocessorManager(
|
|
184
|
+
logger=logger,
|
|
185
|
+
chat_service=chat_service,
|
|
186
|
+
)
|
|
182
187
|
|
|
183
|
-
if config.agent.services.stock_ticker_config:
|
|
184
|
-
|
|
188
|
+
if config.agent.services.stock_ticker_config is not None:
|
|
189
|
+
postprocessor_manager.add_postprocessor(
|
|
185
190
|
StockTickerPostprocessor(
|
|
186
191
|
config=config.agent.services.stock_ticker_config,
|
|
187
192
|
event=event,
|
|
@@ -192,7 +197,8 @@ def _build_common(
|
|
|
192
197
|
config.agent.services.follow_up_questions_config
|
|
193
198
|
and config.agent.services.follow_up_questions_config.number_of_questions > 0
|
|
194
199
|
):
|
|
195
|
-
|
|
200
|
+
# Should run last to make sure the follow up questions are displayed last.
|
|
201
|
+
postprocessor_manager.set_last_postprocessor(
|
|
196
202
|
FollowUpPostprocessor(
|
|
197
203
|
logger=logger,
|
|
198
204
|
config=config.agent.services.follow_up_questions_config,
|
|
@@ -215,7 +221,7 @@ def _build_common(
|
|
|
215
221
|
a2a_manager=a2a_manager,
|
|
216
222
|
tool_manager_config=tool_manager_config,
|
|
217
223
|
mcp_servers=event.payload.mcp_servers,
|
|
218
|
-
|
|
224
|
+
postprocessor_manager=postprocessor_manager,
|
|
219
225
|
)
|
|
220
226
|
|
|
221
227
|
|
|
@@ -297,12 +303,7 @@ async def _build_responses(
|
|
|
297
303
|
builtin_tool_manager=builtin_tool_manager,
|
|
298
304
|
)
|
|
299
305
|
|
|
300
|
-
postprocessor_manager =
|
|
301
|
-
logger=logger,
|
|
302
|
-
chat_service=common_components.chat_service,
|
|
303
|
-
)
|
|
304
|
-
for postprocessor in common_components.postprocessors:
|
|
305
|
-
postprocessor_manager.add_postprocessor(postprocessor)
|
|
306
|
+
postprocessor_manager = common_components.postprocessor_manager
|
|
306
307
|
|
|
307
308
|
if (
|
|
308
309
|
config.agent.experimental.responses_api_config.code_interpreter_display_config
|
|
@@ -408,12 +409,7 @@ def _build_completions(
|
|
|
408
409
|
if not TOOL_CHOICES and UPLOADED_DOCUMENTS:
|
|
409
410
|
tool_manager.add_forced_tool(UploadedSearchTool.name)
|
|
410
411
|
|
|
411
|
-
postprocessor_manager =
|
|
412
|
-
logger=logger,
|
|
413
|
-
chat_service=common_components.chat_service,
|
|
414
|
-
)
|
|
415
|
-
for postprocessor in common_components.postprocessors:
|
|
416
|
-
postprocessor_manager.add_postprocessor(postprocessor)
|
|
412
|
+
postprocessor_manager = common_components.postprocessor_manager
|
|
417
413
|
|
|
418
414
|
_add_sub_agents_postprocessor(
|
|
419
415
|
postprocessor_manager=postprocessor_manager,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|