Simple Agent Builder
The Simple Agent Builder block embeds the platform's lightweight AI-agent editor into your own app page. Pointed at an agent by ID, it shows the full editing surface — instructions (with an expandable full-page editor), tools, skills, knowledge and conversation starters — plus an optional side-by-side chat preview rendered from a Preview Copilot slot. Saving through the block both saves the agent and deploys it for use in copilot.
Tip: When to use: Build a white-labeled "edit your agent" experience inside your app, without sending users to the platform's agent module. Pair the editing form with a live chat preview so users can test the agent as they tune it. To only chat with an existing agent (no editing), use a Copilot block instead.
Properties
Content
| Property | Type | Default | Description |
agentId | string (bindable) | "" | The ID of the agent to edit. Required (required) — the block renders nothing until an agent id is set. |
name | string (bindable) | — | Overrides the agent's name on save. Leave empty to let users name the agent in the form. |
description | string (bindable) | — | Overrides the agent's description on save. |
taskExecutionModelId | string (bindable) | — | Overrides the model the agent uses for task execution on save. |
isPreviewOpen | string (truthy check) | — | Whether the chat preview panel is shown beside the form. Bindable — a button can toggle it through a variable. |
Slots
| Slot | Description |
| Preview Copilot | A Copilot block placed in this slot renders as the side-by-side test chat. It reacts to the agent being edited so it always previews the current agent state. |
Events
| Event | Trigger |
On Save | User clicks Save — the agent has been saved and deployed. |
On Cancel | User cancels editing without saving. |
Behavior & Gotchas
Warning: agentId is required. The block renders an empty frame until an agent id is supplied. Bind it to a URL parameter, a page variable, or a data source result.
Note: isPreviewOpen uses a truthy check, not a strict boolean. Any value that JavaScript evaluates as truthy (including non-empty strings like "true" or "1") will open the preview.
Note: Name, description, and model overrides apply on save only. Binding these properties controls what is written back to the agent when Save is clicked — they don't change the values visible in the form while the user is editing.
Examples
Knowledge Builder
The Knowledge Builder block embeds a complete, guided knowledge-setup flow for a third-party app inside your page. You point it at an app by name; it then walks the user through connecting the app, configuring what data to sync as knowledge, and browsing the synced knowledge's details and stats. The screen a user lands on is chosen automatically from how far that app's setup has already progressed.
Tip: When to use: Give end users a self-serve way to connect an app and sync its content into knowledge — without leaving your app. Surface an already-configured knowledge source's details and sync status. For a chat surface that consumes knowledge, use a Copilot block instead — this block only builds and manages the knowledge.
Properties
Content
| Property | Type | Default | Description |
appName | string (bindable) | empty | The app whose knowledge is being set up. This single value drives everything — the connection lookup, sync configuration, and details display. |
Events
| Event | Trigger |
On Close | User closes the knowledge builder flow. |
Behavior & Gotchas
Note: The block automatically shows the right screen for the app's setup state. If the app isn't connected, it shows the connection screen. If connected but not configured, it shows the sync setup. If fully configured, it shows the knowledge details and stats. Your app doesn't need to track this state.
Warning: appName drives the entire flow. Binding an incorrect or misspelled app name shows an empty state or an error — verify the exact app name from the platform's app registry.
Examples
Copilot Video
The Copilot Video block displays a live video or screen-share feed from a copilot voice session — the AI agent's video, the user's own camera, or the screen a participant is sharing. It links to a Copilot or Copilot Voice block on the page and pulls its feed from that session. The block can render inline (Static) or as a draggable floating overlay (Floating) with snap placements, pop-out controls, and customizable empty states.
Tip: When to use: When your agent supports a video avatar or the voice experience includes screen sharing, and you want the feed visible in the app. For a picture-in-picture style overlay the user can drag while chatting, use Floating mode. For the audio-only voice experience itself, use Copilot Voice — this block only displays the video track.
Properties
| Property | Type | Default | Description |
copilotId | block reference | — | The Copilot, Copilot Voice, or Headless Copilot block whose session provides the video. |
trackType | "video" | "screenshare" | video | Which feed to display — camera/avatar video or a shared screen. |
videoSource | "agent" | "user" | agent | Whose video to show. Appears when trackType = video. |
selectedAgentId | string | — | For a team of agents, which sub-agent's feed to display. Appears when videoSource = agent. |
displayMode | "static" | "floating" | static | Inline rendering or draggable floating overlay. |
Behavior & Gotchas
Note: The block renders nothing when no active video feed is available. If the voice session hasn't started, the agent has no video track, or the user's camera is off, the block shows its configured empty state (or nothing if no empty state is set).
Note: Floating mode snaps to corners. Users can drag the floating overlay to any corner; it snaps on release. The pop-out control opens the feed in a larger view.
Examples
Related Blocks
| Block | Relationship |
| Copilot | The all-in-one assistant that users can chat with after the agent is configured. |
| Copilot Voice | The voice session engine that Copilot Video pulls its feed from. |
| Copilot Thread | Enterprise search experience that benefits from knowledge built with Knowledge Builder. |
Frequently Asked Questions
Is an agentId required for Simple Agent Builder, and what happens without one?
Yes — agentId is required. Without it the block renders an empty panel with no agent to edit. The agentId is the identifier of the AI agent you want users to configure inside your app. You set it once in the inspector or bind it dynamically. The name, description, and task execution model properties in the inspector are initial overrides applied when the agent editor opens with that agentId.
How do I let users preview the agent they just configured in Simple Agent Builder?
Add a Copilot block or any Copilot-family block into the Preview Copilot slot of the Simple Agent Builder. When isPreviewOpen is truthy, that slot's content becomes visible. Wire a toggle or button to control the open state, and the user can test the agent directly alongside the editor without navigating away.
What does the Knowledge Builder's appName property actually control?
The appName property is the primary driver for the Knowledge Builder flow — it tells the block which application's knowledge to set up. All screens, labels and data fetched within the guided flow are scoped to that application name. If appName is empty or unbound, the flow has nothing to operate on. Bind it to the current application's name or a page parameter.
What is the Copilot Video block's floating display mode?
When Display Mode is set to Floating, the video feed detaches from its layout position and appears as an overlay that the user can drag to any corner of the screen. This is useful during an active voice session where the user needs to continue interacting with the page while still seeing the video. Static mode keeps the video in place in the page layout.