ag-ui-protocol / ag-ui-protocol/ag-ui

Add IBM watsonx orchestrate

オープン
#1,679 コメント 0 件 リアクション 0 件 担当者 1 名 @mxmzb が担当を希望しています GitHub で見る
enhancement Integration
主要言語
Python
スター
15.9k
フォーク
1.4k
平均マージ
1日 17時間
マージ済み PR(30日)
163

説明

Add AG-UI support for [IBM watsonx orchestrate](https://www.ibm.com/products/watsonx-orchestrate).

## What is watsonx orchestrate?

IBM watsonx orchestrate is an enterprise AI agent platform that lets teams build, deploy, and manage AI agents and automations. It exposes an OpenAI-compatible SSE endpoint for chat completions, making it a natural fit for the AG-UI protocol.

- Site: https://www.ibm.com/products/watsonx-orchestrate
- Docs: https://cloud.ibm.com/docs/watsonx-orchestrate

## Design

watsonx orchestrate exposes an OpenAI-compatible SSE endpoint at:
```
https://api.{region}.watson-orchestrate.cloud.ibm.com/instances/{instanceId}/v1/orchestrate/{agentId}/chat/completions
```

The adapter translates between this and AG-UI events:
- `choices[0].delta.content` → `TEXT_MESSAGE_START` / `TEXT_MESSAGE_CONTENT` / `TEXT_MESSAGE_END`
- `choices[0].delta.tool_calls` → `TOOL_CALL_START` / `TOOL_CALL_ARGS` / `TOOL_CALL_END`
- `threadId` → `X-IBM-THREAD-ID` header for conversation continuity
- Full run wrapped in `STEP_STARTED` / `STEP_FINISHED` lifecycle
- `MESSAGES_SNAPSHOT` emitted at run end with complete conversation history
- Raw SSE chunks forwarded as `RAW` events for debugging
- Tool results from input emitted as `TOOL_CALL_RESULT`

Unlike most integrations (trivial TS client + heavy Python adapter), watsonx is a cloud API — so the TypeScript client does the real work and the Python adapter is provided for pattern consistency.

## Getting started with the integration

The AG-UI repo has a step-by-step guide for adding new framework integrations:

- **Contributing guide:** [CONTRIBUTING.md](https://github.com/ag-ui-protocol/ag-ui/blob/main/CONTRIBUTING.md)
- **Integration walkthrough:** [Step-by-Step Guide to Adding an Integration PR](https://github.com/ag-ui-protocol/ag-ui/blob/main/CONTRIBUTING.md#step-by-step-guide-to-adding-an-integration-pr)
- **Reference implementations:** [`integrations/langgraph/`](https://github.com/ag-ui-protocol/ag-ui/tree/main/integrations/langgraph), [`integrations/mastra/`](https://github.com/ag-ui-protocol/ag-ui/tree/main/integrations/mastra), [`integrations/adk-middleware/`](https://github.com/ag-ui-protocol/ag-ui/tree/main/integrations/adk-middleware)
- **CODEOWNERS:** [.github/CODEOWNERS](https://github.com/ag-ui-protocol/ag-ui/blob/main/.github/CODEOWNERS)

High-level steps from the guide:
1. Add an integration folder under `integrations/watsonx/` with `typescript/` and `python/` packages
2. Register the integration in the Dojo (`apps/dojo/src/agents.ts`, `menu.ts`, `env.ts`)
3. Add Dojo prep + run scripts under `apps/dojo/scripts/`
4. Add e2e tests under `apps/dojo/e2e/tests/watsonxTests/`
5. Wire up CI in the test matrix
6. Community contributors become `CODEOWNERS` for the new integration and agree to maintain it for the community.

## Implementation PR

#1665

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。