interactions: - request: body: "{\"messages\":[{\"role\":\"system\",\"content\":\"You are Guardrail Agent. You are a expert at validating the output of a task. By providing effective feedback if the output is not valid.\\nYour personal goal is: Validate the output of the task\"},{\"role\":\"user\",\"content\":\"\\nCurrent Task: \\n Ensure the following task result complies with the given guardrail.\\n\\n Task result:\\n \\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever\\n \\n\\n Guardrail:\\n Ensure the result has less than 10 words\\n\\n Your task:\\n - Confirm if the Task result complies with the guardrail.\\n - If not, provide clear feedback explaining what is wrong (e.g., by how much it violates the rule, or what specific part fails).\\n - Focus only on identifying issues \u2014 do not propose corrections.\\n \ - If the Task result complies with the guardrail, saying that is valid\\n \ \\n\\nProvide your complete response:\"}],\"model\":\"gpt-4o\",\"response_format\":{\"type\":\"json_schema\",\"json_schema\":{\"schema\":{\"properties\":{\"valid\":{\"description\":\"Whether the task output complies with the guardrail\",\"title\":\"Valid\",\"type\":\"boolean\"},\"feedback\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"null\"}],\"description\":\"A feedback about the task output if it is not valid\",\"title\":\"Feedback\"}},\"required\":[\"valid\",\"feedback\"],\"title\":\"LLMGuardrailResult\",\"type\":\"object\",\"additionalProperties\":false},\"name\":\"LLMGuardrailResult\",\"strict\":true}},\"stream\":false}" headers: User-Agent: - X-USER-AGENT-XXX accept: - application/json accept-encoding: - ACCEPT-ENCODING-XXX authorization: - AUTHORIZATION-XXX connection: - keep-alive content-length: - '1567' content-type: - application/json host: - api.openai.com x-stainless-arch: - X-STAINLESS-ARCH-XXX x-stainless-async: - 'false' x-stainless-helper-method: - beta.chat.completions.parse x-stainless-lang: - python x-stainless-os: - X-STAINLESS-OS-XXX x-stainless-package-version: - 1.83.0 x-stainless-read-timeout: - X-STAINLESS-READ-TIMEOUT-XXX x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - 3.13.12 method: POST uri: https://api.openai.com/v1/chat/completions response: body: string: "{\n \"id\": \"chatcmpl-DDGANa7LCEtvfCZsEly4mNksTjCX3\",\n \"object\": \"chat.completion\",\n \"created\": 1772052779,\n \"model\": \"gpt-4o-2024-08-06\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"{\\\"valid\\\":false,\\\"feedback\\\":\\\"The task result contains more than 10 words. Specifically, it has 20 words, which exceeds the guardrail limit by 10 words.\\\"}\",\n \"refusal\": null,\n \ \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 290,\n \"completion_tokens\": 37,\n \"total_tokens\": 327,\n \"prompt_tokens_details\": {\n \"cached_tokens\": 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": \"default\",\n \"system_fingerprint\": \"fp_64dfa806c7\"\n}\n" headers: CF-RAY: - CF-RAY-XXX Connection: - keep-alive Content-Type: - application/json Date: - Wed, 25 Feb 2026 20:53:00 GMT Server: - cloudflare Strict-Transport-Security: - STS-XXX Transfer-Encoding: - chunked X-Content-Type-Options: - X-CONTENT-TYPE-XXX access-control-expose-headers: - ACCESS-CONTROL-XXX alt-svc: - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - '1108' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' set-cookie: - SET-COOKIE-XXX x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: - X-RATELIMIT-LIMIT-REQUESTS-XXX x-ratelimit-limit-tokens: - X-RATELIMIT-LIMIT-TOKENS-XXX x-ratelimit-remaining-requests: - X-RATELIMIT-REMAINING-REQUESTS-XXX x-ratelimit-remaining-tokens: - X-RATELIMIT-REMAINING-TOKENS-XXX x-ratelimit-reset-requests: - X-RATELIMIT-RESET-REQUESTS-XXX x-ratelimit-reset-tokens: - X-RATELIMIT-RESET-TOKENS-XXX x-request-id: - X-REQUEST-ID-XXX status: code: 200 message: OK - request: body: "{\"messages\":[{\"role\":\"system\",\"content\":\"You are Guardrail Agent. You are a expert at validating the output of a task. By providing effective feedback if the output is not valid.\\nYour personal goal is: Validate the output of the task\"},{\"role\":\"user\",\"content\":\"\\nCurrent Task: \\n Ensure the following task result complies with the given guardrail.\\n\\n Task result:\\n \\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever\\n \\n\\n Guardrail:\\n Ensure the result has less than 500 words\\n\\n Your task:\\n - Confirm if the Task result complies with the guardrail.\\n - If not, provide clear feedback explaining what is wrong (e.g., by how much it violates the rule, or what specific part fails).\\n - Focus only on identifying issues \u2014 do not propose corrections.\\n - If the Task result complies with the guardrail, saying that is valid\\n \\n\\nProvide your complete response:\"}],\"model\":\"gpt-4o\",\"response_format\":{\"type\":\"json_schema\",\"json_schema\":{\"schema\":{\"properties\":{\"valid\":{\"description\":\"Whether the task output complies with the guardrail\",\"title\":\"Valid\",\"type\":\"boolean\"},\"feedback\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"null\"}],\"description\":\"A feedback about the task output if it is not valid\",\"title\":\"Feedback\"}},\"required\":[\"valid\",\"feedback\"],\"title\":\"LLMGuardrailResult\",\"type\":\"object\",\"additionalProperties\":false},\"name\":\"LLMGuardrailResult\",\"strict\":true}},\"stream\":false}" headers: User-Agent: - X-USER-AGENT-XXX accept: - application/json accept-encoding: - ACCEPT-ENCODING-XXX authorization: - AUTHORIZATION-XXX connection: - keep-alive content-length: - '1568' content-type: - application/json host: - api.openai.com x-stainless-arch: - X-STAINLESS-ARCH-XXX x-stainless-async: - 'false' x-stainless-helper-method: - beta.chat.completions.parse x-stainless-lang: - python x-stainless-os: - X-STAINLESS-OS-XXX x-stainless-package-version: - 1.83.0 x-stainless-read-timeout: - X-STAINLESS-READ-TIMEOUT-XXX x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - 3.13.12 method: POST uri: https://api.openai.com/v1/chat/completions response: body: string: "{\n \"id\": \"chatcmpl-DDGAO7HbV6K3Iy0lQA058TOzTDoVa\",\n \"object\": \"chat.completion\",\n \"created\": 1772052780,\n \"model\": \"gpt-4o-2024-08-06\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"{\\\"valid\\\":true,\\\"feedback\\\":null}\",\n \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 290,\n \"completion_tokens\": 9,\n \"total_tokens\": 299,\n \"prompt_tokens_details\": {\n \"cached_tokens\": 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": \"default\",\n \"system_fingerprint\": \"fp_1d6b4c17c3\"\n}\n" headers: CF-RAY: - CF-RAY-XXX Connection: - keep-alive Content-Type: - application/json Date: - Wed, 25 Feb 2026 20:53:01 GMT Server: - cloudflare Strict-Transport-Security: - STS-XXX Transfer-Encoding: - chunked X-Content-Type-Options: - X-CONTENT-TYPE-XXX access-control-expose-headers: - ACCESS-CONTROL-XXX alt-svc: - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - OPENAI-ORG-XXX openai-processing-ms: - '386' openai-project: - OPENAI-PROJECT-XXX openai-version: - '2020-10-01' set-cookie: - SET-COOKIE-XXX x-openai-proxy-wasm: - v0.1 x-ratelimit-limit-requests: - X-RATELIMIT-LIMIT-REQUESTS-XXX x-ratelimit-limit-tokens: - X-RATELIMIT-LIMIT-TOKENS-XXX x-ratelimit-remaining-requests: - X-RATELIMIT-REMAINING-REQUESTS-XXX x-ratelimit-remaining-tokens: - X-RATELIMIT-REMAINING-TOKENS-XXX x-ratelimit-reset-requests: - X-RATELIMIT-RESET-REQUESTS-XXX x-ratelimit-reset-tokens: - X-RATELIMIT-RESET-TOKENS-XXX x-request-id: - X-REQUEST-ID-XXX status: code: 200 message: OK version: 1