Core concepts
| Term | Description |
|---|---|
| Outcome | The expected final result of a task |
| Rubric | The success-criteria text the Agent uses to judge its own output |
user.define_outcome event. The Agent will keep referring to the criteria as it works.
Event format
Field reference
| Field | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Fixed value user.define_outcome |
| rubric | string | Yes | Success criteria text |
Typical usage
- Create a Session and send the initial message.
- Send
user.define_outcomewith the Rubric to define success. - The Agent iterates against the Rubric.
- Inspect the output once you receive
session.status_idle.
Make Rubrics specific and measurable. Avoid vague language like “make it better”; use criteria like “code coverage no less than 80%“.
curl example
Successful response (202 Accepted)
Outcomes vs. regular messages
| Dimension | user.message | user.define_outcome |
|---|---|---|
| Purpose | Send a conversational message | Define success criteria |
| Triggered behavior | The Agent replies | The Agent iterates against the criteria |
| Key field | content | rubric |
| Timing | Any time | Typically before or alongside the initial task |
Best practices
- Send the Outcome before or alongside the task instructions (
user.message). - Use a numbered list in the Rubric so the Agent can verify items individually.
- For complex tasks, break the Rubric into multiple measurable acceptance criteria.
- Keep the Rubric under 500 words.
Next steps
Start a session
Run an agent against an environment.
Session event stream
Stream agent thinking, messages, and tool calls over SSE.
Agent setup
Review Agent configuration.
Tools
Equip your agent with built-in, MCP, and custom tools.