558 lines
19 KiB
YAML
558 lines
19 KiB
YAML
name: AG2
|
|
slug: ag2
|
|
category: emerging
|
|
language: python
|
|
logo: /logos/ag2.svg
|
|
description: >-
|
|
CopilotKit integration with AG2. Supports the full range of CopilotKit
|
|
features including generative UI, shared state, human-in-the-loop, sub-agents,
|
|
and streaming.
|
|
partner_docs: null
|
|
repo: https://github.com/CopilotKit/CopilotKit/tree/main/showcase/integrations/ag2
|
|
copilotkit_version: 2.0.0
|
|
deployed: true
|
|
docs_mode: authored
|
|
sort_order: 100
|
|
generative_ui:
|
|
- constrained-explicit
|
|
- a2ui-fixed-schema
|
|
- a2ui-dynamic-schema
|
|
not_supported_features:
|
|
- shared-state-streaming
|
|
- gen-ui-interrupt
|
|
- interrupt-headless
|
|
# AG2's ConversableAgent/AGUIStream does not emit AG-UI REASONING_MESSAGE_*
|
|
# events (documented in src/agents/tool_rendering_reasoning_chain.py) — the
|
|
# reasoning-block can never mount, so any reasoning-bearing pill is
|
|
# upstream-incapable until autogen maps reasoning deltas to AG-UI events.
|
|
# The reasoning-default-render / agentic-chat-reasoning demos remain wired
|
|
# on disk but cannot stream reasoning text; tool-rendering-reasoning-chain's
|
|
# tool loop works, but its reasoning slot is degraded for the same reason.
|
|
- reasoning-default-render
|
|
- agentic-chat-reasoning
|
|
- tool-rendering-reasoning-chain
|
|
interaction_modalities:
|
|
- sidebar
|
|
- embedded
|
|
- chat
|
|
features:
|
|
- cli-start
|
|
- agentic-chat
|
|
- hitl-in-chat
|
|
- hitl-in-chat-booking
|
|
- hitl-in-app
|
|
- hitl
|
|
- tool-rendering
|
|
- tool-rendering-default-catchall
|
|
- tool-rendering-custom-catchall
|
|
- gen-ui-agent
|
|
- gen-ui-tool-based
|
|
- declarative-gen-ui
|
|
- a2ui-fixed-schema
|
|
- mcp-apps
|
|
- open-gen-ui
|
|
- open-gen-ui-advanced
|
|
- prebuilt-sidebar
|
|
- prebuilt-popup
|
|
- chat-slots
|
|
- chat-customization-css
|
|
- headless-simple
|
|
- headless-complete
|
|
- readonly-state-agent-context
|
|
- frontend-tools
|
|
- frontend-tools-async
|
|
- shared-state-read-write
|
|
- subagents
|
|
- auth
|
|
- agent-config
|
|
- voice
|
|
- multimodal
|
|
- beautiful-chat
|
|
agent_config_pattern: shared-state
|
|
|
|
a2ui_pattern: schema-loading
|
|
auth_pattern: ag2-context-variables
|
|
demos:
|
|
- id: cli-start
|
|
name: CLI Start Command
|
|
description: Copy-paste command to clone the canonical starter
|
|
tags:
|
|
- chat-ui
|
|
command: "npx copilotkit@latest init --framework ag2"
|
|
- id: agentic-chat
|
|
name: Agentic Chat
|
|
description: Natural conversation with frontend tool execution
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/agentic-chat
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/agentic-chat/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: hitl-in-chat
|
|
name: In-Chat HITL (useHumanInTheLoop)
|
|
description:
|
|
Interactive approval/decision surface rendered inline in the chat
|
|
via the high-level `useHumanInTheLoop` hook
|
|
tags:
|
|
- interactivity
|
|
route: /demos/hitl-in-chat
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/hitl-in-chat/page.tsx
|
|
- src/app/demos/hitl-in-chat/time-picker-card.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: hitl-in-chat-booking
|
|
name: In-Chat HITL (Booking)
|
|
description: Time-picker card rendered inline via useHumanInTheLoop for a
|
|
booking flow — same surface as hitl-in-chat with a booking-focused framing
|
|
tags:
|
|
- interactivity
|
|
route: /demos/hitl-in-chat
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/hitl-in-chat/page.tsx
|
|
- src/app/demos/hitl-in-chat/time-picker-card.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: hitl-in-app
|
|
name: In-App Human in the Loop (Frontend Tools + async HITL)
|
|
description:
|
|
Agent requests approval via useFrontendTool with an async handler;
|
|
the approval UI pops up as an app-level modal OUTSIDE the chat
|
|
tags:
|
|
- interactivity
|
|
route: /demos/hitl-in-app
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/hitl-in-app/page.tsx
|
|
- src/app/demos/hitl-in-app/approval-dialog.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: hitl
|
|
name: In-Chat Human in the Loop (Original)
|
|
description: User approves agent actions before execution
|
|
tags:
|
|
- interactivity
|
|
route: /demos/hitl
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/hitl/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: tool-rendering
|
|
name: Tool Rendering
|
|
description: Backend agent tools rendered as UI components
|
|
tags:
|
|
- agent-capabilities
|
|
route: /demos/tool-rendering
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- tools/get_weather.py
|
|
- tools/query_data.py
|
|
- tools/schedule_meeting.py
|
|
- tools/search_flights.py
|
|
- src/app/demos/tool-rendering/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: tool-rendering-default-catchall
|
|
name: Tool Rendering (Default Catch-all)
|
|
description: Out-of-the-box tool rendering — backend defines the tools; the
|
|
frontend adds zero custom renderers and relies on CopilotKit's built-in
|
|
default UI
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/tool-rendering-default-catchall
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/tool-rendering-default-catchall/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: tool-rendering-custom-catchall
|
|
name: Tool Rendering (Custom Catch-all)
|
|
description: Single branded wildcard renderer via useDefaultRenderTool — the
|
|
same app-designed card paints every tool call
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/tool-rendering-custom-catchall
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/tool-rendering-custom-catchall/page.tsx
|
|
- src/app/demos/tool-rendering-custom-catchall/custom-catchall-renderer.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: gen-ui-agent
|
|
name: Agentic Generative UI
|
|
description: Long-running agent tasks with generated UI
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/gen-ui-agent
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/gen-ui-agent/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: gen-ui-tool-based
|
|
name: Tool-Based Generative UI
|
|
description: Agent uses tools to trigger UI generation
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/gen-ui-tool-based
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/gen-ui-tool-based/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: shared-state-streaming
|
|
name: State Streaming
|
|
description: Per-token state delta streaming from agent to UI
|
|
tags:
|
|
- agent-state
|
|
route: /demos/shared-state-streaming
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/shared-state-streaming/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: prebuilt-sidebar
|
|
name: "Pre-Built: Sidebar"
|
|
description: Docked sidebar chat via <CopilotSidebar />
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/prebuilt-sidebar
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/prebuilt-sidebar/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: prebuilt-popup
|
|
name: "Pre-Built: Popup"
|
|
description: Floating popup chat via <CopilotPopup />
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/prebuilt-popup
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/prebuilt-popup/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: chat-slots
|
|
name: Chat Customization (Slots)
|
|
description: Customize CopilotChat via its slot system
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/chat-slots
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/chat-slots/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: chat-customization-css
|
|
name: Chat Customization (CSS)
|
|
description: Default CopilotChat re-themed via CopilotKitCSSProperties
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/chat-customization-css
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/chat-customization-css/page.tsx
|
|
- src/app/demos/chat-customization-css/theme.css
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: headless-simple
|
|
name: Headless Chat (Simple)
|
|
description: Minimal custom chat surface built on useAgent
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/headless-simple
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/headless-simple/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: headless-complete
|
|
name: Headless Chat (Complete)
|
|
description: Full chat implementation built from scratch on useAgent
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/headless-complete
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/headless_complete.py
|
|
- src/app/demos/headless-complete/page.tsx
|
|
- src/app/api/copilotkit-mcp-apps/route.ts
|
|
- src/app/demos/headless-complete/chat/chat.tsx
|
|
- src/app/demos/headless-complete/hooks/use-tool-renderers.tsx
|
|
- src/app/demos/headless-complete/hooks/use-frontend-components.ts
|
|
- src/app/demos/headless-complete/hooks/use-headless-suggestions.ts
|
|
- src/app/demos/headless-complete/attachments/use-attachments-config.ts
|
|
- src/app/demos/headless-complete/tools/weather-card.tsx
|
|
- src/app/demos/headless-complete/tools/stock-card.tsx
|
|
- src/app/demos/headless-complete/tools/chart-card.tsx
|
|
- src/app/demos/headless-complete/tools/highlight-note.tsx
|
|
- id: readonly-state-agent-context
|
|
name: Readonly State (Agent Context)
|
|
description: Frontend provides read-only context to the agent via useAgentContext
|
|
tags:
|
|
- agent-state
|
|
route: /demos/readonly-state-agent-context
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/readonly-state-agent-context/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: frontend-tools
|
|
name: Frontend Tools (In-App Actions)
|
|
description: Agent invokes client-side handlers registered with useFrontendTool
|
|
tags:
|
|
- interactivity
|
|
route: /demos/frontend-tools
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/frontend-tools/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: frontend-tools-async
|
|
name: Frontend Tools (Async)
|
|
description:
|
|
useFrontendTool with an async handler — agent awaits a client-side
|
|
async operation and uses the returned result
|
|
tags:
|
|
- interactivity
|
|
route: /demos/frontend-tools-async
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/frontend-tools-async/page.tsx
|
|
- src/app/demos/frontend-tools-async/notes-card.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: shared-state-read-write
|
|
name: Shared State (Read + Write)
|
|
description: Bidirectional agent state — UI writes preferences, agent writes
|
|
notes back via AG2 ContextVariables
|
|
tags:
|
|
- agent-state
|
|
route: /demos/shared-state-read-write
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/shared_state_read_write.py
|
|
- src/app/demos/shared-state-read-write/page.tsx
|
|
- src/app/demos/shared-state-read-write/preferences-card.tsx
|
|
- src/app/demos/shared-state-read-write/notes-card.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: subagents
|
|
name: Sub-Agents
|
|
description: Supervisor delegates tasks to research, writing, and critique
|
|
sub-agents with a live delegation log
|
|
tags:
|
|
- multi-agent
|
|
route: /demos/subagents
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/subagents.py
|
|
- src/app/demos/subagents/page.tsx
|
|
- src/app/demos/subagents/delegation-log.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: gen-ui-interrupt
|
|
name: Gen UI Interrupt (Frontend Tool + async Promise)
|
|
description:
|
|
In-chat time-picker card via useFrontendTool with an async handler
|
|
that blocks until the user picks a slot — AG2 adaptation of the LangGraph
|
|
interrupt() primitive
|
|
tags:
|
|
- interactivity
|
|
route: /demos/gen-ui-interrupt
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/interrupt_agent.py
|
|
- src/app/demos/gen-ui-interrupt/page.tsx
|
|
- src/app/demos/gen-ui-interrupt/_components/time-picker-card.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: interrupt-headless
|
|
name: Headless Interrupt (Frontend Tool + async Promise)
|
|
description:
|
|
Time-picker popup rendered outside the chat in the app surface via
|
|
useFrontendTool with an async handler — AG2 adaptation of the LangGraph
|
|
headless interrupt pattern
|
|
tags:
|
|
- interactivity
|
|
route: /demos/interrupt-headless
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/interrupt_agent.py
|
|
- src/app/demos/interrupt-headless/page.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: declarative-gen-ui
|
|
name: Declarative Generative UI (A2UI Dynamic Schema)
|
|
description:
|
|
Agent dynamically composes UI from a registered catalog of branded
|
|
components via the A2UI middleware
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/declarative-gen-ui
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/a2ui_dynamic.py
|
|
- src/app/demos/declarative-gen-ui/page.tsx
|
|
- src/app/demos/declarative-gen-ui/a2ui/catalog.ts
|
|
- src/app/demos/declarative-gen-ui/a2ui/definitions.ts
|
|
- src/app/demos/declarative-gen-ui/a2ui/renderers.tsx
|
|
- src/app/api/copilotkit-declarative-gen-ui/route.ts
|
|
- id: a2ui-fixed-schema
|
|
name: A2UI (Fixed Schema)
|
|
description:
|
|
Agent streams data into a frontend-authored fixed component schema;
|
|
backend ships JSON, agent fills in values
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/a2ui-fixed-schema
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/a2ui_fixed.py
|
|
- src/agents/a2ui_schemas/flight_schema.json
|
|
- src/app/demos/a2ui-fixed-schema/page.tsx
|
|
- src/app/demos/a2ui-fixed-schema/a2ui/catalog.ts
|
|
- src/app/demos/a2ui-fixed-schema/a2ui/definitions.ts
|
|
- src/app/demos/a2ui-fixed-schema/a2ui/renderers.tsx
|
|
- src/app/api/copilotkit-a2ui-fixed-schema/route.ts
|
|
- id: mcp-apps
|
|
name: MCP Apps
|
|
description: Runtime mcpApps middleware injects an MCP server's tools and
|
|
renders associated UI resources inline
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/mcp-apps
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/mcp_apps_agent.py
|
|
- src/app/demos/mcp-apps/page.tsx
|
|
- src/app/api/copilotkit-mcp-apps/route.ts
|
|
- id: open-gen-ui
|
|
name: Open Generative UI (Minimal)
|
|
description:
|
|
Agent streams a single generateSandboxedUi tool call; the runtime
|
|
renders agent-authored HTML/CSS in a sandboxed iframe
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/open-gen-ui
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/open_gen_ui_agent.py
|
|
- src/app/demos/open-gen-ui/page.tsx
|
|
- src/app/api/copilotkit-ogui/route.ts
|
|
- id: open-gen-ui-advanced
|
|
name: Open Generative UI (Advanced)
|
|
description: Sandboxed iframe UIs invoke host-page sandbox functions via
|
|
Websandbox.connection.remote
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/open-gen-ui-advanced
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/open_gen_ui_advanced_agent.py
|
|
- src/app/demos/open-gen-ui-advanced/page.tsx
|
|
- src/app/demos/open-gen-ui-advanced/sandbox-functions.ts
|
|
- src/app/demos/open-gen-ui-advanced/suggestions.ts
|
|
- src/app/api/copilotkit-ogui/route.ts
|
|
- id: tool-rendering-reasoning-chain
|
|
name: Tool Rendering (Reasoning Chain)
|
|
description:
|
|
Sequential tool calls combined with a custom reasoningMessage slot
|
|
— weather, flights, custom catch-all
|
|
tags:
|
|
- generative-ui
|
|
route: /demos/tool-rendering-reasoning-chain
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/tool_rendering_reasoning_chain.py
|
|
- src/app/demos/tool-rendering-reasoning-chain/page.tsx
|
|
- src/app/demos/tool-rendering-reasoning-chain/weather-card.tsx
|
|
- src/app/demos/tool-rendering-reasoning-chain/flight-list-card.tsx
|
|
- src/app/demos/tool-rendering-reasoning-chain/custom-catchall-renderer.tsx
|
|
- src/app/demos/tool-rendering-reasoning-chain/reasoning-block.tsx
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: auth
|
|
name: Authentication
|
|
description:
|
|
Bearer-token gate via runtime onRequest hook with unauthenticated /
|
|
authenticated states
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/auth
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/app/demos/auth/page.tsx
|
|
- src/app/demos/auth/auth-banner.tsx
|
|
- src/app/demos/auth/use-demo-auth.ts
|
|
- src/app/demos/auth/demo-token.ts
|
|
- src/app/api/copilotkit-auth/[[...slug]]/route.ts
|
|
- id: agent-config
|
|
name: Agent Config Object
|
|
description:
|
|
Forward a typed config object (tone / expertise / response length)
|
|
from the provider to the agent's dynamic system prompt
|
|
tags:
|
|
- platform
|
|
route: /demos/agent-config
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent_config_agent.py
|
|
- src/app/demos/agent-config/page.tsx
|
|
- src/app/demos/agent-config/config-card.tsx
|
|
- src/app/demos/agent-config/use-agent-config.ts
|
|
- src/app/demos/agent-config/config-types.ts
|
|
- src/app/api/copilotkit/route.ts
|
|
- id: voice
|
|
name: Voice Input
|
|
description: Speech-to-text via @copilotkit/voice with a bundled sample audio button
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/voice
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/agent.py
|
|
- src/app/demos/voice/page.tsx
|
|
- src/app/demos/voice/sample-audio-button.tsx
|
|
- src/app/api/copilotkit-voice/[[...slug]]/route.ts
|
|
- id: multimodal
|
|
name: Multimodal Attachments
|
|
description:
|
|
Image and PDF uploads via CopilotChat attachments, processed by a
|
|
vision-capable agent
|
|
tags:
|
|
- chat-ui
|
|
route: /demos/multimodal
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/multimodal_agent.py
|
|
- src/app/demos/multimodal/page.tsx
|
|
- src/app/demos/multimodal/sample-attachment-buttons.tsx
|
|
- src/app/api/copilotkit-multimodal/route.ts
|
|
- id: beautiful-chat
|
|
name: Beautiful Chat
|
|
description: Simplified flagship cell that combines A2UI Dynamic + Open
|
|
Generative UI on a single dedicated runtime — agent picks branded catalog
|
|
components for structured visuals and free-form sandboxed UI for
|
|
everything else
|
|
tags:
|
|
- chat-ui
|
|
- generative-ui
|
|
route: /demos/beautiful-chat
|
|
animated_preview_url:
|
|
highlight:
|
|
- src/agents/beautiful_chat.py
|
|
- src/app/demos/beautiful-chat/page.tsx
|
|
- src/app/demos/declarative-gen-ui/a2ui/catalog.ts
|
|
- src/app/api/copilotkit-beautiful-chat/route.ts
|
|
- src/app/demos/beautiful-chat/components/example-layout/index.tsx
|
|
- src/app/demos/beautiful-chat/components/example-canvas/index.tsx
|
|
- src/app/demos/beautiful-chat/components/generative-ui/charts/bar-chart.tsx
|
|
- src/app/demos/beautiful-chat/components/generative-ui/charts/pie-chart.tsx
|
|
- src/app/demos/beautiful-chat/hooks/use-example-suggestions.tsx
|
|
- src/app/demos/beautiful-chat/hooks/use-generative-ui-examples.tsx
|
|
managed_platform:
|
|
name: Agent OS
|
|
url: https://ag2.ai/product
|