feat: add support for job attachment evaluation#1489
Merged
AAgnihotry merged 3 commits intomainfrom Mar 26, 2026
Merged
Conversation
fd6df83 to
92ea91d
Compare
c75fd02 to
bc72b72
Compare
bc72b72 to
7055cda
Compare
7055cda to
8f93efc
Compare
ffaa53b to
8f93efc
Compare
This commit adds support for evaluating agent outputs stored as job attachments.
Core changes:
- Add attachment_utils.py with utilities for detecting, extracting, and downloading job attachments
- Update output_evaluator.py to automatically download attachment content when URIs are detected
- Update base_legacy_evaluator.py with same attachment download capability
- Add 23 comprehensive tests for attachment utilities
- Bump version to 2.10.31
Sample project:
- Add complete attachment_evaluation_test sample demonstrating end-to-end attachment evaluation
- Includes 3 evaluator configurations (ExactMatch, Contains, LineByLine)
- Includes 5 test cases with working examples
- Includes comprehensive documentation (README.md, QUICKSTART.md)
Attachment URI pattern: urn:uipath:cas:file:orchestrator:{uuid}
When evaluators detect this pattern in agent output, they automatically:
1. Extract the attachment UUID
2. Download the attachment content using AttachmentsService
3. Evaluate the downloaded content against expected criteria
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8f93efc to
10a5419
Compare
Chibionos
requested changes
Mar 26, 2026
Chibionos
approved these changes
Mar 26, 2026
Contributor
Chibionos
left a comment
There was a problem hiding this comment.
hide with a feature flag and make sure this is isolated.
Chibionos
reviewed
Mar 26, 2026
Contributor
Chibionos
left a comment
There was a problem hiding this comment.
hide with a feature flag and make sure this is isolated.
Contributor
Author
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
This PR adds support for evaluating agent outputs stored as job attachments. When an agent returns a job attachment URI, evaluators can now automatically download and evaluate the attachment content.
Key Features
urn:uipath:cas:file:orchestrator:{uuid}AttachmentsServiceChanges
Core Implementation
src/uipath/eval/evaluators/attachment_utils.py(new)is_job_attachment_uri()- Detects attachment URI patternextract_attachment_id()- Extracts UUID from URIdownload_attachment_as_string()- Downloads and returns contentsrc/uipath/eval/evaluators/output_evaluator.py_get_actual_output()to detect and download attachmentssrc/uipath/eval/evaluators/base_legacy_evaluator.py_get_actual_output()with attachment supporttests/evaluators/test_attachment_utils.py(new)Sample Project
Complete working sample in
samples/attachment_evaluation_test/:main.py): Generates reports and uploads as attachmentsHow It Works
Test Results
All 1678 tests pass, including 23 new attachment utility tests:
Sample Evaluation Results
Version
2.10.31Testing
To test locally:
🤖 Generated with Claude Code
Development Packages
uipath