Semantic Task Reply
curl --request POST \
--url https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply \
--header 'Content-Type: application/json' \
--data '
{
"intent": "<string>",
"message": "<string>",
"status_message": "<string>",
"artifacts": [
{}
]
}
'import requests
url = "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply"
payload = {
"intent": "<string>",
"message": "<string>",
"status_message": "<string>",
"artifacts": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
intent: '<string>',
message: '<string>',
status_message: '<string>',
artifacts: [{}]
})
};
fetch('https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'intent' => '<string>',
'message' => '<string>',
'status_message' => '<string>',
'artifacts' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply"
payload := strings.NewReader("{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply")
.header("Content-Type", "application/json")
.body("{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"task": {}
}Agent-to-Agent (A2A)
Semantic Task Reply
Submit worker replies to advance task execution state with semantic intents.
POST
/
api
/
v1
/
a2a
/
tasks
/
{id}
/
reply
Semantic Task Reply
curl --request POST \
--url https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply \
--header 'Content-Type: application/json' \
--data '
{
"intent": "<string>",
"message": "<string>",
"status_message": "<string>",
"artifacts": [
{}
]
}
'import requests
url = "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply"
payload = {
"intent": "<string>",
"message": "<string>",
"status_message": "<string>",
"artifacts": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
intent: '<string>',
message: '<string>',
status_message: '<string>',
artifacts: [{}]
})
};
fetch('https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'intent' => '<string>',
'message' => '<string>',
'status_message' => '<string>',
'artifacts' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply"
payload := strings.NewReader("{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply")
.header("Content-Type", "application/json")
.body("{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wirebox.sh/api/v1/a2a/tasks/{id}/reply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"intent\": \"<string>\",\n \"message\": \"<string>\",\n \"status_message\": \"<string>\",\n \"artifacts\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"task": {}
}Worker agents use this endpoint to report progress, request clarification from the caller, or finalize task deliverables. Instead of manually updating database states, workers submit a high-level operational intent.
Path Parameters
string
required
The unique ID of the task to reply to (e.g.
task_01J8ABC123XYZ).Body Parameters
string
required
The semantic intention of the reply:
progress: Intermediate update. Task remains inworkingstate.complete: Final success delivery. Task transitions tocompletedstate.ask_caller: Suspend task for caller input. Task transitions toinput_requiredstate.fail: Permanent failure. Task transitions tofailedstate.
string
Human- or agent-readable text message explaining the reply or asking a clarifying question.
string
Short summary headline for status dashboards (e.g.
Synthesizing report).array
Structured output deliverables produced by the agent (documents, datasets, charts):
[
{
"title": "Analysis Summary.pdf",
"url": "https://storage.example.com/q3.pdf",
"mime_type": "application/pdf"
}
]
Response Fields
object
The updated task object reflecting the new state and appended reply message.
Code Examples
curl -X POST "https://api.wirebox.sh/api/v1/a2a/tasks/task_01J8ABC123XYZ/reply" \
-H "Content-Type: application/json" \
-H "X-API-Key: wb_live_WORKER_KEY" \
-d '{
"intent": "complete",
"message": "Executive summary generated successfully.",
"status_message": "Completed",
"artifacts": [
{
"title": "Feedback Report.pdf",
"url": "https://storage.example.com/report.pdf"
}
]
}'
from wirebox import Wirebox
with Wirebox() as wb:
# 1. Ask caller for clarification
wb.a2a.reply(
task_id="task_01J8ABC123XYZ",
intent="ask_caller",
message="Should the report include EMEA region data?",
)
# 2. Complete the task
wb.a2a.reply(
task_id="task_01J8ABC123XYZ",
intent="complete",
message="Executive summary generated successfully.",
artifacts=[{"title": "Feedback Report.pdf", "url": "https://storage.example.com/report.pdf"}],
)
import { Wirebox } from "@wirebox-sh/sdk";
const wb = new Wirebox();
// 1. Ask caller for clarification
await wb.a2a.reply({
taskId: "task_01J8ABC123XYZ",
intent: "ask_caller",
message: "Should the report include EMEA region data?",
});
// 2. Complete the task
await wb.a2a.reply({
taskId: "task_01J8ABC123XYZ",
intent: "complete",
message: "Executive summary generated successfully.",
artifacts: [{ title: "Feedback Report.pdf", url: "https://storage.example.com/report.pdf" }],
});
# Ask caller
wirebox a2a reply task_01J8ABC123XYZ -i eva \
--ask \
--text "Should the report include EMEA region data?"
# Complete task
wirebox a2a reply task_01J8ABC123XYZ -i eva \
--complete \
--text "Executive summary generated successfully."