Hi team,
Related to the two threads on structured sampling – I’m hitting a third, more opaque failure mode for json_schema-constrained sampling specifically on Cloud Agents, writing it up in case it’s connected.
executa_id: 1091
tool_id: tool-calderbuild-wefinance-investment-recommendations-r2q5jdey
ExecutaVersion: 378 (v0.1.5)
Symptom: every invoke of this tool’s generate_recommendations method fails with:
{“success”: false, “error”: “”, “command_id”: “”}
No jsonrpc/id fields, no error text – doesn’t match our own tool’s JSON-RPC response shape, so it looks like it comes from a layer above our code.
What I’ve ruled out:
- Cloud Agent binary caching – reproduced on a brand-new Cloud Agent’s first-ever invocation of this tool.
-
- A broken/corrupted binary – extracted our shipped darwin-arm64 binary and drove it directly over raw JSON-RPC stdio. It responds correctly to describe/initialize/invoke and emits a well-formed sampling/createMessage request.
-
- Sampling broken platform-wide – our sibling tool (Advisor Chat, same llm.sample capability, plain-text response) succeeds immediately on the same Cloud Agent in the same session.
-
- Missing permission grant – the Sampling toggle is enabled for this Executa in Installed Apps > Permissions.
- The one real difference between the tool that works and the one that doesn’t: this tool requests a strict json_schema-constrained completion, and correctly sets the documented onUnsupported: “json_object” field alongside responseFormat, so the host should downgrade instead of erroring when the model can’t honor strict schema mode. We’re seeing a hard failure instead of a downgrade.
- Example failed call:
- Request:
- {“tool”: “generate_recommendations”, “arguments”: {“risk_profile”: “moderate”, “investment_goal”: “retirement”, “monthly_income”: 8000, “investment_horizon”: “10-15 years”, “transactions”: [4 sample transactions]}}
- Response:
- {“success”: false, “error”: “”, “command_id”: “a62c9c02-fe86-4b98-865b-3d1f091b3fec”}
Two more command_ids from earlier failed attempts, same shape: a6d70289-c2fa-478f-b14c-505ce59ec38a, 5253b1c0-287d-4d87-a2df-5f29d38969eb
Given the “Sampling token missing” thread’s root cause involved a stale platform-side capability/manifest record after certain publish flows, and my own publish history for this executa was slightly unusual (had to manually recreate a missing .anna/executa.json identity cache before republishing), I’m wondering if there’s a similar stale-registration angle here specific to json_schema-mode sampling.
Would appreciate any pointers on where to look next, or confirmation of whether onUnsupported-based downgrade is fully wired up for Cloud Agents today.
Thanks,
Calder