Skip to main content

UiPath Runtime abstractions

Project description

UiPath Runtime

Core runtime abstractions and contracts for the UiPath Python SDK.

Overview

uipath-runtime provides the foundational interfaces and base classes for building agent runtimes in the UiPath ecosystem. It defines the contracts that all runtime implementations must follow, handles execution context, event streaming, tracing, and error management.

This package is typically used as a dependency by higher-level packages like uipath-langchain, uipath-llamaindex, or the main uipath SDK. You would use this directly only if you're building custom runtime implementations.

Installation

uv add uipath-runtime

Core Concepts

Runtime Base Class

All runtimes extend UiPathBaseRuntime and implement these core methods:

from uipath.runtime import UiPathBaseRuntime, UiPathRuntimeContext, UiPathRuntimeResult, UiPathRuntimeEvent

class MyCustomRuntime(UiPathBaseRuntime):
    def __init__(self, context: UiPathRuntimeContext):
        super().__init__(context)

    async def execute(self) -> UiPathRuntimeResult:
        # Execute your agent logic
        return UiPathRuntimeResult(
            output={"result": "success"},
            status=UiPathRuntimeStatus.SUCCESSFUL
        )

    async def stream(
        self,
    ) -> AsyncGenerator[Union[UiPathRuntimeEvent, UiPathRuntimeResult], None]:
        # Stream events during execution for real-time monitoring
        yield UiPathRuntimeStateEvent(
            payload={"status": "starting"},
            execution_id=self.context.execution_id
        )

        # Yield final result
        yield UiPathRuntimeResult(
            output={"completed": True},
            status=UiPathRuntimeStatus.SUCCESSFUL
        )

    async def validate(self) -> None:
        # Validate configuration before execution
        if not self.context.entrypoint:
            raise UiPathRuntimeError(
                UiPathErrorCode.ENTRYPOINT_MISSING,
                "Missing entrypoint",
                "Detailed error message here",
                UiPathErrorCategory.USER,
            )

    async def cleanup(self) -> None:
        # Clean up resources after execution
        pass

Runtime Factory

The factory pattern handles runtime instantiation, instrumentation, and tracing:

from uipath.runtime import UiPathRuntimeFactory, UiPathRuntimeContext

factory = UiPathRuntimeFactory(
    MyCustomRuntime,
    UiPathRuntimeContext,
)

# Add OpenTelemetry instrumentation
factory.add_instrumentor(MyInstrumentor, get_current_span)

# Add span exporters for tracing
factory.add_span_exporter(JsonLinesFileExporter("trace.jsonl"))

# Execute
context = UiPathRuntimeContext(entrypoint="main.py", input='{"query": "hello"}')
result = await factory.execute(context)

Event Streaming

Runtimes can stream events during execution for real-time monitoring:

async for event in factory.stream(context):
    if isinstance(event, UiPathRuntimeStateEvent):
        print(f"State update: {event.payload}")
    elif isinstance(event, UiPathRuntimeMessageEvent):
        print(f"Message: {event.payload}")
    elif isinstance(event, UiPathRuntimeResult):
        print(f"Completed: {event.output}")

Execution Context

Runtime context carries configuration and state throughout execution:

context = UiPathRuntimeContext(
    entrypoint="agent.py",
    input='{"query": "hello"}',
    job_id="job-123",
    resume=False,
)

Error Handling

Structured error handling with categorization:

from uipath.runtime.error import (
    UiPathRuntimeError,
    UiPathErrorCode,
    UiPathErrorCategory
)

raise UiPathRuntimeError(
    UiPathErrorCode.EXECUTION_ERROR,
    "Failed to execute agent",
    "Detailed error message here",
    UiPathErrorCategory.USER,
)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uipath_runtime-0.0.1.tar.gz (79.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uipath_runtime-0.0.1-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file uipath_runtime-0.0.1.tar.gz.

File metadata

  • Download URL: uipath_runtime-0.0.1.tar.gz
  • Upload date:
  • Size: 79.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uipath_runtime-0.0.1.tar.gz
Algorithm Hash digest
SHA256 aac56abfbfca2b52e93f90b818ceaa2b1bb1d245ab9690a5d4b7f96f39d46d59
MD5 f4de7486d8dc72a4cd0dcdc28fe67c99
BLAKE2b-256 9237cfb241506cee51bca87e8486631640d3ac60bb24302ba149bd945ed84786

See more details on using hashes here.

Provenance

The following attestation bundles were made for uipath_runtime-0.0.1.tar.gz:

Publisher: cd.yml on UiPath/uipath-runtime-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uipath_runtime-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: uipath_runtime-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uipath_runtime-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 139c024b929955868fef99c94ce96c9d733ac9b4da72139da268f6eb45aabb13
MD5 fdb5e9e0df265eaea149fbcf9fd73070
BLAKE2b-256 eddb70fb490f1e051eb6f35a1ad4a3c9a2abe819c59142a822075557765e2c1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for uipath_runtime-0.0.1-py3-none-any.whl:

Publisher: cd.yml on UiPath/uipath-runtime-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page