http_sync), Jelou sends a POST to your agent’s URL on every turn and expects a JSON reply in an exact format. This guide describes that format, with examples you can copy.
The same format applies to an HTTP agent deployed on Amazon Bedrock AgentCore: what your handler returns is what Jelou validates.
What your agent receives
Jelou sends aPOST with content-type: application/json, the credential headers you configured and, if enabled, the request signature. The body looks like this:
What your agent must reply
Reply with HTTP 200 and JSON. The reply is strict: any field not in this table is rejected.
Rules by status:
failed and timed_out require error and outputs: []; blocked requires outputs: []; action_required requires an action_required signal.
outputs parts
Signals (signals)
Example replies
Minimal reply
With choices
Hand off to an agent
Save variables and end
Error on the agent side
The node leaves throughagent_failed.
HTTP status codes
If your agent answers with a non-2xx status the turn fails:401 and 403 as auth, 404 and 410 as not_active, 429 as rate_limited, and 408, 504 or 5xx as provider_error. 429 and 5xx are retried if you configured retries.
What happens when the reply breaks the format
The turn fails with codemalformed and the message says what to fix, using field names and paths only (never values). For example:
externalAgent.error.message of the node result in the execution or in the test.
Example: HTTP handler on Amazon Bedrock AgentCore (Python)
It reads the user’s message frominput.parts and returns a valid reply. The function’s return value is the JSON body of the response.