How-to
Use the in-product agent
The agent is a client of the control plane. It does not have a privileged back-channel. Every tool is a REST call under your RBAC, written to the audit trail.
Surfaces
| Surface | Where | What it is for |
|---|---|---|
| Chat widget | Every authenticated page | Page-aware questions. Optional tool use. |
| Agent console | Agent → Console | Longer work — “build this integration.” |
| Settings | Agent → Settings | LLM providers. API keys are write-only. |
| Skills | Agent → Skills | Playbooks with tool allow-lists. GET /agent/skills |
| Tools | Agent → Tools | The catalog. GET /agent/tools |
| MCP | Agent → MCP | Manifest + a ready-to-copy mcp.json. GET /agent/mcp |
Connect a provider
Add a hosted or local OpenAI-compatible runtime. Mark one provider default per tenant.
If Sirius runs in a container and the model runs on your laptop, localhost inside the container is the container. Use the host-gateway hostname your runtime documents (often host.docker.internal) and the API port, with a /v1 prefix.
Set Model to an id the runtime has actually loaded. Small models will call a tool and then fail to summarize the result — that is a model limit, not a Sirius bug. Confirm the tool ran (tool_calls[].status: 200) before you debug the platform.
Give local and reasoning models headroom. A 60-second client timeout looks like context deadline exceeded on a cold load. The bundled Compose stack uses a longer agent HTTP timeout; raise it if your hardware is slower.
How tools are chosen
The catalog is large. The agent does not send every tool on every turn. It ranks a short list against the current page, your messages, and the latest tool output. You can still ask it to use a named skill.
Skills are the right way to constrain blast radius: a playbook plus an allow-list. Prefer a skill over “do whatever you need.”
Call the same surface yourself
curl -s "$SIRIUS/agent/tools?category=builder&read_only=true" \
| jq '.tools[] | {name, method, path, permission}'
curl -s "$SIRIUS/agent/skills"
curl -s "$SIRIUS/agent/mcp"
curl -s -X POST "$SIRIUS/agent/chat" \
-H 'content-type: application/json' \
-d '{"message":"List integrations that are down","page":"/monitor"}'
Attribute agent actions:
X-Sirius-Agent-ID: my-bot
X-Sirius-Actor-Type: agent
An MCP host issues the bound REST request for each tool. Same permissions, same audit. See the REST API for the contract those tools call.