Agent-to-Agent (A2A) executor implementation patterns for task handling, execution management, and agent coordination. Use when building A2A executors, implementing task handlers, creating agent execution flows, or when user mentions A2A protocol, task execution, agent executors, task handlers, or agent coordination.
View on GitHubFebruary 1, 2026
Select agents to install to:
npx add-skill https://github.com/vanman2024/ai-dev-marketplace/blob/main/plugins/a2a-protocol/skills/a2a-executor-patterns/SKILL.md -a claude-code --skill a2a-executor-patternsInstallation paths:
.claude/skills/a2a-executor-patterns/# A2A Executor Patterns
**Purpose:** Provide production-ready executor patterns for implementing Agent-to-Agent (A2A) protocol task handlers with proper error handling, retry logic, and execution flows.
**Activation Triggers:**
- Implementing A2A protocol executors
- Building task handler functions
- Creating agent execution flows
- Managing task lifecycle and state
- Implementing retry and error recovery
- Building executor middleware
- Task validation and sanitization
**Key Resources:**
- `templates/basic-executor.ts` - Simple synchronous executor
- `templates/basic-executor.py` - Python synchronous executor
- `templates/async-executor.ts` - Asynchronous task executor
- `templates/async-executor.py` - Python async executor
- `templates/streaming-executor.ts` - Streaming result executor
- `templates/streaming-executor.py` - Python streaming executor
- `templates/batch-executor.ts` - Batch task processing
- `scripts/validate-executor.sh` - Validate executor implementation
- `scripts/test-executor.sh` - Test executor against A2A spec
- `examples/` - Production executor implementations
## Core Executor Patterns
### 1. Basic Executor (Synchronous)
**When to use:** Simple, fast tasks with immediate results
**Template:** `templates/basic-executor.ts` or `templates/basic-executor.py`
**Pattern:**
```typescript
async function executeTask(task: A2ATask): Promise<A2AResult> {
// 1. Validate input
validateTask(task)
// 2. Execute task
const result = await processTask(task)
// 3. Return result
return {
status: 'completed',
result,
taskId: task.id
}
}
```
**Best for:** Quick operations, validation tasks, simple transformations
### 2. Async Executor (Long-Running)
**When to use:** Tasks that take time and need status updates
**Template:** `templates/async-executor.ts` or `templates/async-executor.py`
**Pattern:**
- Accept task and return task ID immediately
- Process task asynchronously
- Provide status endpoint
- Send completion callback