Control & Governance

Building an agent that can read files, run commands, and edit code is only half the job. The other half is staying in control of what it does — who approves risky actions, how you observe every step, how you undo mistakes, and how you keep spend predictable. The Syntic Agent SDK gives you a layered set of governance primitives so Amara operates within boundaries you define.

This section covers the controls you wire around the agent loop. Together they let you ship an agent that is powerful without being unsupervised.

What lives in this section

  • Permissions — choose a permission mode and write allow/deny rules, then gate individual tool calls at runtime with a canUseTool callback.
  • Hooks — attach callbacks to lifecycle events like pre- and post-tool-use to observe, block, or rewrite what the agent does.
  • Checkpointing — snapshot the agent and workspace state so you can roll back changes when a run goes sideways.
  • Cost & Usage — read token counts and cost from result messages and enforce budgets.
  • OpenTelemetry — emit traces and metrics to your existing observability stack.
  • Todo Lists — inspect the task list Amara maintains while working through multi-step goals.

How the controls fit together

Think of these features as concentric rings. Permissions decide what is even allowed. Hooks let you inspect and adjust each allowed action in flight. Checkpointing gives you a safety net if an allowed action turns out to be wrong. Cost tracking and OpenTelemetry give you the visibility to tune all of the above, while todo lists expose the agent’s own plan so you can follow along. Adopt them incrementally — start with permissions, then add observability, then automation.