curl --request POST \
--url https://api.example.com/v1/agent_sessions/{session_id}/chat \
--header 'Content-Type: application/json' \
--data '
{
"headless": true,
"model": {
"providerType": "custom",
"providerId": "<string>",
"modelName": "<string>"
},
"id": "<string>",
"contexts": [
{
"type": "app",
"currentDateTime": "<string>",
"timeZone": "<string>"
}
],
"editPermission": "manual",
"requestedSkills": [
"<string>"
],
"trigger": "submit-message",
"message": {
"id": "<string>",
"parts": [
{
"text": "<string>",
"type": "text",
"providerMetadata": {}
}
],
"metadata": {
"phoenix": {
"type": "assistant",
"sessionId": "<string>",
"turnTraceContext": {
"traceId": "<string>",
"rootSpanId": "<string>",
"startedAt": "2023-11-07T05:31:56Z"
},
"usage": {
"tokens": {
"prompt": 123,
"completion": 123,
"total": 123
},
"promptDetails": {
"cacheRead": 123,
"cacheWrite": 123
}
},
"interrupted": false
},
"pydantic_ai": {
"timestamp": "2023-11-07T05:31:56Z"
}
}
},
"toolOutputs": [
{
"type": "<string>",
"toolCallId": "<string>",
"title": "<string>",
"state": "output-available",
"input": null,
"output": null,
"providerExecuted": true,
"callProviderMetadata": {},
"resultProviderMetadata": {},
"preliminary": true,
"approval": {
"id": "<string>"
}
}
],
"lastMessageId": "<string>",
"recordLocalTraces": false,
"exportRemoteTraces": false,
"instrumentUserId": false
}
'import requests
url = "https://api.example.com/v1/agent_sessions/{session_id}/chat"
payload = {
"headless": True,
"model": {
"providerType": "custom",
"providerId": "<string>",
"modelName": "<string>"
},
"id": "<string>",
"contexts": [
{
"type": "app",
"currentDateTime": "<string>",
"timeZone": "<string>"
}
],
"editPermission": "manual",
"requestedSkills": ["<string>"],
"trigger": "submit-message",
"message": {
"id": "<string>",
"parts": [
{
"text": "<string>",
"type": "text",
"providerMetadata": {}
}
],
"metadata": {
"phoenix": {
"type": "assistant",
"sessionId": "<string>",
"turnTraceContext": {
"traceId": "<string>",
"rootSpanId": "<string>",
"startedAt": "2023-11-07T05:31:56Z"
},
"usage": {
"tokens": {
"prompt": 123,
"completion": 123,
"total": 123
},
"promptDetails": {
"cacheRead": 123,
"cacheWrite": 123
}
},
"interrupted": False
},
"pydantic_ai": { "timestamp": "2023-11-07T05:31:56Z" }
}
},
"toolOutputs": [
{
"type": "<string>",
"toolCallId": "<string>",
"title": "<string>",
"state": "output-available",
"input": None,
"output": None,
"providerExecuted": True,
"callProviderMetadata": {},
"resultProviderMetadata": {},
"preliminary": True,
"approval": { "id": "<string>" }
}
],
"lastMessageId": "<string>",
"recordLocalTraces": False,
"exportRemoteTraces": False,
"instrumentUserId": False
}
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({
headless: true,
model: {providerType: 'custom', providerId: '<string>', modelName: '<string>'},
id: '<string>',
contexts: [{type: 'app', currentDateTime: '<string>', timeZone: '<string>'}],
editPermission: 'manual',
requestedSkills: ['<string>'],
trigger: 'submit-message',
message: {
id: '<string>',
parts: [{text: '<string>', type: 'text', providerMetadata: {}}],
metadata: {
phoenix: {
type: 'assistant',
sessionId: '<string>',
turnTraceContext: {traceId: '<string>', rootSpanId: '<string>', startedAt: '2023-11-07T05:31:56Z'},
usage: {
tokens: {prompt: 123, completion: 123, total: 123},
promptDetails: {cacheRead: 123, cacheWrite: 123}
},
interrupted: false
},
pydantic_ai: {timestamp: '2023-11-07T05:31:56Z'}
}
},
toolOutputs: [
{
type: '<string>',
toolCallId: '<string>',
title: '<string>',
state: 'output-available',
input: null,
output: null,
providerExecuted: true,
callProviderMetadata: {},
resultProviderMetadata: {},
preliminary: true,
approval: {id: '<string>'}
}
],
lastMessageId: '<string>',
recordLocalTraces: false,
exportRemoteTraces: false,
instrumentUserId: false
})
};
fetch('https://api.example.com/v1/agent_sessions/{session_id}/chat', 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.example.com/v1/agent_sessions/{session_id}/chat",
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([
'headless' => true,
'model' => [
'providerType' => 'custom',
'providerId' => '<string>',
'modelName' => '<string>'
],
'id' => '<string>',
'contexts' => [
[
'type' => 'app',
'currentDateTime' => '<string>',
'timeZone' => '<string>'
]
],
'editPermission' => 'manual',
'requestedSkills' => [
'<string>'
],
'trigger' => 'submit-message',
'message' => [
'id' => '<string>',
'parts' => [
[
'text' => '<string>',
'type' => 'text',
'providerMetadata' => [
]
]
],
'metadata' => [
'phoenix' => [
'type' => 'assistant',
'sessionId' => '<string>',
'turnTraceContext' => [
'traceId' => '<string>',
'rootSpanId' => '<string>',
'startedAt' => '2023-11-07T05:31:56Z'
],
'usage' => [
'tokens' => [
'prompt' => 123,
'completion' => 123,
'total' => 123
],
'promptDetails' => [
'cacheRead' => 123,
'cacheWrite' => 123
]
],
'interrupted' => false
],
'pydantic_ai' => [
'timestamp' => '2023-11-07T05:31:56Z'
]
]
],
'toolOutputs' => [
[
'type' => '<string>',
'toolCallId' => '<string>',
'title' => '<string>',
'state' => 'output-available',
'input' => null,
'output' => null,
'providerExecuted' => true,
'callProviderMetadata' => [
],
'resultProviderMetadata' => [
],
'preliminary' => true,
'approval' => [
'id' => '<string>'
]
]
],
'lastMessageId' => '<string>',
'recordLocalTraces' => false,
'exportRemoteTraces' => false,
'instrumentUserId' => false
]),
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.example.com/v1/agent_sessions/{session_id}/chat"
payload := strings.NewReader("{\n \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\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.example.com/v1/agent_sessions/{session_id}/chat")
.header("Content-Type", "application/json")
.body("{\n \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/agent_sessions/{session_id}/chat")
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 \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\n}"
response = http.request(request)
puts response.read_body"<string>""<string>""<string>""<string>"{
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}"<string>"Chat
curl --request POST \
--url https://api.example.com/v1/agent_sessions/{session_id}/chat \
--header 'Content-Type: application/json' \
--data '
{
"headless": true,
"model": {
"providerType": "custom",
"providerId": "<string>",
"modelName": "<string>"
},
"id": "<string>",
"contexts": [
{
"type": "app",
"currentDateTime": "<string>",
"timeZone": "<string>"
}
],
"editPermission": "manual",
"requestedSkills": [
"<string>"
],
"trigger": "submit-message",
"message": {
"id": "<string>",
"parts": [
{
"text": "<string>",
"type": "text",
"providerMetadata": {}
}
],
"metadata": {
"phoenix": {
"type": "assistant",
"sessionId": "<string>",
"turnTraceContext": {
"traceId": "<string>",
"rootSpanId": "<string>",
"startedAt": "2023-11-07T05:31:56Z"
},
"usage": {
"tokens": {
"prompt": 123,
"completion": 123,
"total": 123
},
"promptDetails": {
"cacheRead": 123,
"cacheWrite": 123
}
},
"interrupted": false
},
"pydantic_ai": {
"timestamp": "2023-11-07T05:31:56Z"
}
}
},
"toolOutputs": [
{
"type": "<string>",
"toolCallId": "<string>",
"title": "<string>",
"state": "output-available",
"input": null,
"output": null,
"providerExecuted": true,
"callProviderMetadata": {},
"resultProviderMetadata": {},
"preliminary": true,
"approval": {
"id": "<string>"
}
}
],
"lastMessageId": "<string>",
"recordLocalTraces": false,
"exportRemoteTraces": false,
"instrumentUserId": false
}
'import requests
url = "https://api.example.com/v1/agent_sessions/{session_id}/chat"
payload = {
"headless": True,
"model": {
"providerType": "custom",
"providerId": "<string>",
"modelName": "<string>"
},
"id": "<string>",
"contexts": [
{
"type": "app",
"currentDateTime": "<string>",
"timeZone": "<string>"
}
],
"editPermission": "manual",
"requestedSkills": ["<string>"],
"trigger": "submit-message",
"message": {
"id": "<string>",
"parts": [
{
"text": "<string>",
"type": "text",
"providerMetadata": {}
}
],
"metadata": {
"phoenix": {
"type": "assistant",
"sessionId": "<string>",
"turnTraceContext": {
"traceId": "<string>",
"rootSpanId": "<string>",
"startedAt": "2023-11-07T05:31:56Z"
},
"usage": {
"tokens": {
"prompt": 123,
"completion": 123,
"total": 123
},
"promptDetails": {
"cacheRead": 123,
"cacheWrite": 123
}
},
"interrupted": False
},
"pydantic_ai": { "timestamp": "2023-11-07T05:31:56Z" }
}
},
"toolOutputs": [
{
"type": "<string>",
"toolCallId": "<string>",
"title": "<string>",
"state": "output-available",
"input": None,
"output": None,
"providerExecuted": True,
"callProviderMetadata": {},
"resultProviderMetadata": {},
"preliminary": True,
"approval": { "id": "<string>" }
}
],
"lastMessageId": "<string>",
"recordLocalTraces": False,
"exportRemoteTraces": False,
"instrumentUserId": False
}
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({
headless: true,
model: {providerType: 'custom', providerId: '<string>', modelName: '<string>'},
id: '<string>',
contexts: [{type: 'app', currentDateTime: '<string>', timeZone: '<string>'}],
editPermission: 'manual',
requestedSkills: ['<string>'],
trigger: 'submit-message',
message: {
id: '<string>',
parts: [{text: '<string>', type: 'text', providerMetadata: {}}],
metadata: {
phoenix: {
type: 'assistant',
sessionId: '<string>',
turnTraceContext: {traceId: '<string>', rootSpanId: '<string>', startedAt: '2023-11-07T05:31:56Z'},
usage: {
tokens: {prompt: 123, completion: 123, total: 123},
promptDetails: {cacheRead: 123, cacheWrite: 123}
},
interrupted: false
},
pydantic_ai: {timestamp: '2023-11-07T05:31:56Z'}
}
},
toolOutputs: [
{
type: '<string>',
toolCallId: '<string>',
title: '<string>',
state: 'output-available',
input: null,
output: null,
providerExecuted: true,
callProviderMetadata: {},
resultProviderMetadata: {},
preliminary: true,
approval: {id: '<string>'}
}
],
lastMessageId: '<string>',
recordLocalTraces: false,
exportRemoteTraces: false,
instrumentUserId: false
})
};
fetch('https://api.example.com/v1/agent_sessions/{session_id}/chat', 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.example.com/v1/agent_sessions/{session_id}/chat",
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([
'headless' => true,
'model' => [
'providerType' => 'custom',
'providerId' => '<string>',
'modelName' => '<string>'
],
'id' => '<string>',
'contexts' => [
[
'type' => 'app',
'currentDateTime' => '<string>',
'timeZone' => '<string>'
]
],
'editPermission' => 'manual',
'requestedSkills' => [
'<string>'
],
'trigger' => 'submit-message',
'message' => [
'id' => '<string>',
'parts' => [
[
'text' => '<string>',
'type' => 'text',
'providerMetadata' => [
]
]
],
'metadata' => [
'phoenix' => [
'type' => 'assistant',
'sessionId' => '<string>',
'turnTraceContext' => [
'traceId' => '<string>',
'rootSpanId' => '<string>',
'startedAt' => '2023-11-07T05:31:56Z'
],
'usage' => [
'tokens' => [
'prompt' => 123,
'completion' => 123,
'total' => 123
],
'promptDetails' => [
'cacheRead' => 123,
'cacheWrite' => 123
]
],
'interrupted' => false
],
'pydantic_ai' => [
'timestamp' => '2023-11-07T05:31:56Z'
]
]
],
'toolOutputs' => [
[
'type' => '<string>',
'toolCallId' => '<string>',
'title' => '<string>',
'state' => 'output-available',
'input' => null,
'output' => null,
'providerExecuted' => true,
'callProviderMetadata' => [
],
'resultProviderMetadata' => [
],
'preliminary' => true,
'approval' => [
'id' => '<string>'
]
]
],
'lastMessageId' => '<string>',
'recordLocalTraces' => false,
'exportRemoteTraces' => false,
'instrumentUserId' => false
]),
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.example.com/v1/agent_sessions/{session_id}/chat"
payload := strings.NewReader("{\n \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\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.example.com/v1/agent_sessions/{session_id}/chat")
.header("Content-Type", "application/json")
.body("{\n \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/agent_sessions/{session_id}/chat")
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 \"headless\": true,\n \"model\": {\n \"providerType\": \"custom\",\n \"providerId\": \"<string>\",\n \"modelName\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"contexts\": [\n {\n \"type\": \"app\",\n \"currentDateTime\": \"<string>\",\n \"timeZone\": \"<string>\"\n }\n ],\n \"editPermission\": \"manual\",\n \"requestedSkills\": [\n \"<string>\"\n ],\n \"trigger\": \"submit-message\",\n \"message\": {\n \"id\": \"<string>\",\n \"parts\": [\n {\n \"text\": \"<string>\",\n \"type\": \"text\",\n \"providerMetadata\": {}\n }\n ],\n \"metadata\": {\n \"phoenix\": {\n \"type\": \"assistant\",\n \"sessionId\": \"<string>\",\n \"turnTraceContext\": {\n \"traceId\": \"<string>\",\n \"rootSpanId\": \"<string>\",\n \"startedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"usage\": {\n \"tokens\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"total\": 123\n },\n \"promptDetails\": {\n \"cacheRead\": 123,\n \"cacheWrite\": 123\n }\n },\n \"interrupted\": false\n },\n \"pydantic_ai\": {\n \"timestamp\": \"2023-11-07T05:31:56Z\"\n }\n }\n },\n \"toolOutputs\": [\n {\n \"type\": \"<string>\",\n \"toolCallId\": \"<string>\",\n \"title\": \"<string>\",\n \"state\": \"output-available\",\n \"input\": null,\n \"output\": null,\n \"providerExecuted\": true,\n \"callProviderMetadata\": {},\n \"resultProviderMetadata\": {},\n \"preliminary\": true,\n \"approval\": {\n \"id\": \"<string>\"\n }\n }\n ],\n \"lastMessageId\": \"<string>\",\n \"recordLocalTraces\": false,\n \"exportRemoteTraces\": false,\n \"instrumentUserId\": false\n}"
response = http.request(request)
puts response.read_body"<string>""<string>""<string>""<string>"{
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}"<string>"Path Parameters
Body
Assistant chat submit request payload.
Whether a headless client (terminal or scripted) is driving the turn, as opposed to the browser assistant. Selects the agent configuration the turn runs on.
The model the client believes the session is set to. This is a precondition, not an instruction: the turn always runs on the session's persisted selection, and a mismatch is rejected with HTTP 409 and code agent_session_model_stale rather than silently running on — or switching to — an unexpected model. Change the session's model with PATCH .../agent_sessions/{session_id}.
- CustomProviderModelSelection
- BuiltInProviderModelSelection
Show child attributes
Show child attributes
Per-turn browser clock context for resolving relative time requests.
- AppContext
- ProjectContext
- TraceContext
- SessionContext
- PromptContext
- PromptVersionContext
- AgentSpanContext
- PlaygroundContext
- CodeEvaluatorContext
- LlmEvaluatorContext
- DatasetContext
- GraphQLContext
- WebAccessContext
- SubagentsContext
Show child attributes
Show child attributes
manual, bypass Skills the user explicitly requested via the prompt's slash-command affordance. The server force-loads each available skill by injecting a synthetic load_skill tool call/result at the tail of the message history. Unknown or context-unavailable names are ignored.
"submit-message"The turn's new user message to append. May be omitted for client-tool continuation, where toolOutputs resolve the trailing assistant message's pending tool calls instead.
Show child attributes
Show child attributes
Client-executed tool results for pending tool calls on the transcript's trailing assistant message, matched by toolCallId. Submitted alone they continue the assistant turn; submitted with message they resolve dangling tool calls before the new user turn runs.
Tool part in output-available state.
- ToolOutputAvailablePart
- ToolOutputErrorPart
- DynamicToolOutputAvailablePart
- DynamicToolOutputErrorPart
Show child attributes
Show child attributes
The id of the last transcript message the client has rendered, used for optimistic concurrency. Omit when the session has no messages; required (and validated against the persisted transcript) once it does. On mismatch the server rejects the send with HTTP 409 and code agent_session_messages_stale — the client should refetch the session before retrying.
When true and the request is authenticated as a PhoenixUser, attaches the user's email as the OpenInference user.id span attribute on all traced work for this request.
Response
Successful Response
Was this page helpful?

