Repository navigation
feat(agent): classifier tool with typesafe and openai providers - #1937
Open
ionut-mihalache-uipath wants to merge 2 commits into
Open
ionut-mihalache-uipath wants to merge 2 commits into
ionut-mihalache-uipath wants to merge 2 commits into
Conversation
…esafe and openai providers The `jev-classifier` internal tool type becomes `classifier`. Its settings hold the model and its provider (`typesafe` for Jev, `openai` for the Decisions API), both required. The question models gain the OpenAI Decisions shapes (choice with choices, score with labeled levels, predicate) next to the Jev ones, and each question rejects the fields of the other types and of the other provider. Breaking for the unreleased Jev tool: `jev-classifier` no longer parses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F6qDf7FQSgba7JrYH4j6jw
The LLM Gateway serves typed classification decisions (OpenAI's Decisions API,
TypeSafe's Jev) on a raw vendor route next to /completions. AgentHub and
Orchestrator proxy it as llm/raw/vendor/{vendor}/model/{model}/decisions;
EndpointManager.get_vendor_decisions_endpoint() picks between them like the
other LLM endpoints.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The uipath lockfile still records the editable uipath-platform dependency at version 0.2.35.
0 open findings
What changed in this PR
Adds a unified classifier tool supporting TypeSafe Jev and OpenAI Decisions providers.
Changes:
- Adds provider-specific classifier question models and validation.
- Adds vendor decisions endpoint selection and tests.
- Bumps package versions.
| File | Description |
|---|---|
packages/uipath/src/uipath/agent/models/agent.py |
Defines unified classifier models and providers. |
packages/uipath/tests/agent/models/test_classifier_tool.py |
Tests classifier validation and question shapes. |
packages/uipath/pyproject.toml |
Bumps uipath version. |
packages/uipath/uv.lock |
Updates the locked uipath version. |
packages/uipath-platform/src/uipath/platform/common/_endpoints_manager.py |
Adds decisions endpoint routing. |
packages/uipath-platform/tests/common/test_endpoints_manager.py |
Tests AgentHub and Orchestrator routes. |
packages/uipath-platform/pyproject.toml |
Bumps uipath-platform version. |
packages/uipath-platform/uv.lock |
Updates the locked platform version. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
jev-classifierinternal tool type becomesclassifier. Its settings hold the model and its provider, both required:typesafefor Jev,openaifor OpenAI's Decisions API.choices, score with labeledlevels, predicate) next to the Jev ones. Each question rejects the fields of the other question types and of the other provider.EndpointManager.get_vendor_decisions_endpoint()returns the LLM Gateway's raw vendor decisions route,llm/raw/vendor/{vendor}/model/{model}/decisions, through AgentHub or Orchestrator like the other LLM endpoints.uipathto 2.14.37 anduipath-platformto 0.2.36.Why
OpenAI released a Decisions API that answers typed classification questions the way Jev does. The LLM Gateway now serves both on a
/decisionsroute; Jev's/completionsroute is deprecated. One classifier tool with a provider is simpler for agent authors than two near-identical tools.Breaking for the Jev tool:
jev-classifierno longer parses. The tool is unreleased.Testing
test_classifier_tool.py: 55 tests cover both providers' question shapes and the cross-provider and cross-type rejections.test_endpoints_manager.pycovers the AgentHub and Orchestrator decisions routes.🤖 Generated with Claude Code