Input & Output
Every interaction with the Syntic Agent SDK comes down to what you send Amara and what you get back. This section covers both sides of that exchange: how to feed work into an agent and how to consume everything the Syntic model produces as it reasons, calls tools, and reaches a conclusion.
On the input side, you can hand Amara a single prompt or open a live channel that accepts messages as they arrive. On the output side, the SDK exposes a rich stream of typed events so you can render progress, react to tool activity, and capture the final answer in whatever shape your application needs.
Choosing an input mode
Most simple automations pass one prompt and wait for a result. But interactive assistants, chat surfaces, and long-lived agents benefit from streaming input, where you push user turns into the agent over time and keep the conversation warm. Streaming input keeps the session context intact across turns and lets a human interject mid-task.
Read Streaming Input to learn how to supply an async sequence of messages instead of a fixed prompt.
Shaping the output
The SDK emits messages continuously while Amara works. You can subscribe to assistant text as it is generated, observe tool calls and their results, and detect the terminal result message that signals completion.
Three pages cover the output path:
- Handle Approvals — pause the loop and ask a human before a tool runs.
- Stream Responses — consume text deltas, tool events, and the final result.
- Structured Output — coerce the agent’s answer into typed JSON that conforms to a schema.
Together these give you fine-grained control over the flow of information in and out of the agent, whether you are building a headless pipeline or a fully interactive experience.