Skip to content

Feature Request: External Agent Runtime Support (Google ADK) #491

@jsingh-github

Description

@jsingh-github

Description

Add native support in the OpenUI SDK for connecting to external agent runtimes (e.g. Google ADK, Microsoft Agent Framework, Mastra, LangGraph) via a simple, first-class runtime adapter API.

This would allow orchestration, planning, memory, workflows, and tool execution to run outside OpenUI while preserving OpenUI’s strengths around:

  • UI rendering
  • streaming
  • conversational UX
  • tool interaction
  • developer experience

Background

Many teams are standardising on external agent frameworks such as:

  • Google ADK
  • Microsoft Agent Framework
  • Mastra
  • LangGraph

These frameworks are increasingly used as the primary orchestration/runtime layer for production agents.

In these architectures:

  • the agent framework handles orchestration, memory, workflows, and execution
  • the UI framework handles chat UX, streaming, interaction, and presentation

OpenUI is well positioned to become the UI layer for these ecosystems.


Current Limitation

Currently, OpenUI SDK supports direct LLM integration, but there is no straightforward way to plug in an external agent runtime (for example Google ADK) as the execution backend.

This means developers must adopt the OpenUI-native execution/orchestration model in order to use the SDK.

For teams already invested in external runtime ecosystems, this becomes a major integration limitation.


Example: CopilotKit Runtime Model

Another AI UI framework, CopilotKit, supports external runtimes through a lightweight runtime abstraction.

Example:

import { NextRequest } from "next/server";
import { HttpAgent } from "@ag-ui/client";
import {
  CopilotRuntime,
  copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";

const runtime = new CopilotRuntime({
  agents: {
    default: new HttpAgent({
      url: "https://your-agent.example.com",
    }),
  },
});

export const POST = async (req: NextRequest) => {
  const { handleRequest } =
    copilotRuntimeNextJSAppRouterEndpoint({
      runtime,
      endpoint: "/api/copilotkit",
    });

  return handleRequest(req);
};

This approach cleanly separates:

  • UI/runtime transport
  • orchestration/execution
  • agent implementation

Proposed Solution

Introduce a runtime adapter/provider interface in OpenUI SDK.

Example goals:

  • Register external agent runtimes
  • Support HTTP/WebSocket/SSE runtime connections
  • Stream responses/events from external runtimes
  • Support external tool execution pipelines
  • Preserve OpenUI components and interaction model
  • Keep orchestration runtime-agnostic

Potential conceptual architecture:

OpenUI Components/UI
          ↓
OpenUI Runtime Adapter Layer
          ↓
Google ADK / Mastra / LangGraph / External Runtime

Why This Matters

Many enterprises and startups will not build agents directly inside OpenUI.

Instead, they will standardise on dedicated orchestration frameworks such as Google ADK or LangGraph and look for a flexible UI layer on top.

Supporting external runtimes would position OpenUI as:

  • a universal AI interaction layer
  • runtime-agnostic
  • easier to adopt in enterprise environments
  • compatible with existing agent infrastructure investments

This could significantly expand OpenUI adoption across production AI stacks.


Potential Benefits

  • Better interoperability
  • Easier enterprise adoption
  • Runtime flexibility
  • Separation of UI and orchestration concerns
  • Reduced framework lock-in
  • Compatibility with emerging agent ecosystems
  • Easier migration paths for existing AI platforms

Suggested APIs / Approaches

Possible implementation directions:

  • Runtime provider interface
  • HTTP agent adapter
  • Streaming transport abstraction
  • WebSocket/SSE runtime bridge
  • OpenAI-compatible runtime transport
  • MCP-style runtime protocol support
  • Runtime registration via config/API

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions