An agent sends the same state and questions with sysone_decide, or POST /v1/decide over HTTP.
MCP tool call for the default example
{
"tool": "sysone_decide",
"arguments": {
"state": {
"situation": "A payment outage is affecting orders. Support is writing to customers who asked whether they should retry.",
"message": "we're aware of issues. pls wait."
},
"questions": {
"clarity": {
"type": "score",
"instructions": "How clearly does the message tell the customer what happened and what to do next? Judge only the message text.",
"criteria": [
"The reader cannot tell what happened or what to do",
"The reader learns what happened but not what to do",
"The reader learns what happened and what to do, but a detail is vague",
"The reader learns what happened, what to do and when to expect an update"
]
},
"tone": {
"type": "score",
"instructions": "How respectful and calm is the message toward the customer? Judge only the message text.",
"criteria": [
"Blames or dismisses the customer",
"Curt or defensive",
"Neutral and polite",
"Warm and calm, and takes responsibility"
]
}
}
}
}HTTP and SDK
curl -sS "$SYSONE_URL/v1/decide" \
-H "Authorization: Bearer $SYSONE_TOKEN" \
-H "Content-Type: application/json" \
--data @request.json
import { createClient } from "sysone/client";
const engine = createClient({
url: process.env.SYSONE_URL!,
token: process.env.SYSONE_TOKEN!,
});
const result = await engine.run("decide", request); // request.json
// result.result.answers holds the typed answers; result.meta holds usage.Community projects inspired ideas here; this experiment is our own design and code.