mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-09 22:25:33 -05:00
* feat(tools): added calcom * added more triggers, tested * updated regex in script for release to be more lenient * fix(tag-dropdown): performance improvements and scroll bug fixes - Add flatTagIndexMap for O(1) tag lookups (replaces O(n²) findIndex calls) - Memoize caret position calculation to avoid DOM manipulation on every render - Use refs for inputValue/cursorPosition to keep handleTagSelect callback stable - Change itemRefs from index-based to tag-based keys to prevent stale refs - Fix scroll jump in nested folders by removing scroll reset from registerFolder - Add onFolderEnter callback for scroll reset when entering folder via keyboard - Disable keyboard navigation wrap-around at boundaries - Simplify selection reset to single effect on flatTagList.length change Also: - Add safeCompare utility for timing-safe string comparison - Refactor webhook signature validation to use safeCompare Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * updated types * fix(calcom): simplify required field constraints for booking attendee The condition field already restricts these to calcom_create_booking, so simplified to required: true. Per Cal.com API docs, email is optional while name and timeZone are required. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * added tests * updated folder multi select, updated calcom and github tools and docs generator script * updated drag, updated outputs for tools, regen docs with nested docs script * updated setup instructions links, destructure trigger outputs, fix text subblock styling * updated docs gen script * updated docs script * updated docs script * updated script * remove destructuring of stripe webhook * expanded wand textarea, updated calcom tools --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
213 lines
7.7 KiB
Plaintext
213 lines
7.7 KiB
Plaintext
---
|
||
title: A2A
|
||
description: Interact with external A2A-compatible agents
|
||
---
|
||
|
||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||
|
||
<BlockInfoCard
|
||
type="a2a"
|
||
color="#4151B5"
|
||
/>
|
||
|
||
{/* MANUAL-CONTENT-START:intro */}
|
||
The A2A (Agent-to-Agent) protocol enables Sim to interact with external AI agents and systems that implement A2A-compatible APIs. With A2A, you can connect Sim’s automations and workflows to remote agents—such as LLM-powered bots, microservices, and other AI-based tools—using a standardized messaging format.
|
||
|
||
Using the A2A tools in Sim, you can:
|
||
|
||
- **Send Messages to External Agents**: Communicate directly with remote agents, providing prompts, commands, or data.
|
||
- **Receive and Stream Responses**: Get structured responses, artifacts, or real-time updates from the agent as the task progresses.
|
||
- **Continue Conversations or Tasks**: Carry on multi-turn conversations or workflows by referencing task and context IDs.
|
||
- **Integrate Third-Party AI and Automation**: Leverage external A2A-compatible services as part of your Sim workflows.
|
||
|
||
These features allow you to build advanced workflows that combine Sim’s native capabilities with the intelligence and automation of external AIs or custom agents. To use A2A integrations, you’ll need the external agent’s endpoint URL and, if required, an API key or credentials.
|
||
{/* MANUAL-CONTENT-END */}
|
||
|
||
|
||
## Usage Instructions
|
||
|
||
Use the A2A (Agent-to-Agent) protocol to interact with external AI agents.
|
||
|
||
|
||
|
||
## Tools
|
||
|
||
### `a2a_send_message`
|
||
|
||
Send a message to an external A2A-compatible agent.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `message` | string | Yes | Message to send to the agent |
|
||
| `taskId` | string | No | Task ID for continuing an existing task |
|
||
| `contextId` | string | No | Context ID for conversation continuity |
|
||
| `data` | string | No | Structured data to include with the message \(JSON string\) |
|
||
| `files` | array | No | Files to include with the message |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `content` | string | Text response content from the agent |
|
||
| `taskId` | string | Unique task identifier |
|
||
| `contextId` | string | Groups related tasks/messages |
|
||
| `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
|
||
| `artifacts` | array | Task output artifacts |
|
||
| `history` | array | Conversation history \(Message array\) |
|
||
|
||
### `a2a_get_task`
|
||
|
||
Query the status of an existing A2A task.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to query |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
| `historyLength` | number | No | Number of history messages to include |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `taskId` | string | Unique task identifier |
|
||
| `contextId` | string | Groups related tasks/messages |
|
||
| `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
|
||
| `artifacts` | array | Task output artifacts |
|
||
| `history` | array | Conversation history \(Message array\) |
|
||
|
||
### `a2a_cancel_task`
|
||
|
||
Cancel a running A2A task.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to cancel |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `cancelled` | boolean | Whether cancellation was successful |
|
||
| `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
|
||
|
||
### `a2a_get_agent_card`
|
||
|
||
Fetch the Agent Card (discovery document) for an A2A agent.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `apiKey` | string | No | API key for authentication \(if required\) |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `name` | string | Agent display name |
|
||
| `description` | string | Agent purpose/capabilities |
|
||
| `url` | string | Service endpoint URL |
|
||
| `provider` | object | Creator organization details |
|
||
| `capabilities` | object | Feature support matrix |
|
||
| `skills` | array | Available operations |
|
||
| `version` | string | A2A protocol version supported by the agent |
|
||
| `defaultInputModes` | array | Default input content types accepted by the agent |
|
||
| `defaultOutputModes` | array | Default output content types produced by the agent |
|
||
|
||
### `a2a_resubscribe`
|
||
|
||
Reconnect to an ongoing A2A task stream after connection interruption.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to resubscribe to |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `taskId` | string | Unique task identifier |
|
||
| `contextId` | string | Groups related tasks/messages |
|
||
| `state` | string | Current lifecycle state \(working, completed, failed, canceled, rejected, input_required, auth_required\) |
|
||
| `isRunning` | boolean | Whether the task is still running |
|
||
| `artifacts` | array | Task output artifacts |
|
||
| `history` | array | Conversation history \(Message array\) |
|
||
|
||
### `a2a_set_push_notification`
|
||
|
||
Configure a webhook to receive task update notifications.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to configure notifications for |
|
||
| `webhookUrl` | string | Yes | HTTPS webhook URL to receive notifications |
|
||
| `token` | string | No | Token for webhook validation |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `url` | string | HTTPS webhook URL for notifications |
|
||
| `token` | string | Authentication token for webhook validation |
|
||
| `success` | boolean | Whether the operation was successful |
|
||
|
||
### `a2a_get_push_notification`
|
||
|
||
Get the push notification webhook configuration for a task.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to get notification config for |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `token` | string | Authentication token for webhook validation |
|
||
| `exists` | boolean | Whether the resource exists |
|
||
|
||
### `a2a_delete_push_notification`
|
||
|
||
Delete the push notification webhook configuration for a task.
|
||
|
||
#### Input
|
||
|
||
| Parameter | Type | Required | Description |
|
||
| --------- | ---- | -------- | ----------- |
|
||
| `agentUrl` | string | Yes | The A2A agent endpoint URL |
|
||
| `taskId` | string | Yes | Task ID to delete notification config for |
|
||
| `pushNotificationConfigId` | string | No | Push notification configuration ID to delete \(optional - server can derive from taskId\) |
|
||
| `apiKey` | string | No | API key for authentication |
|
||
|
||
#### Output
|
||
|
||
| Parameter | Type | Description |
|
||
| --------- | ---- | ----------- |
|
||
| `success` | boolean | Whether the operation was successful |
|
||
|
||
|