Observability
FYAI records every chat session, model call and tool call made by your agents and teams. You can review this per entity, on the Observability and History tabs, or through the API.
| Where | What it answers |
|---|---|
| Overview tab → Activity · 30 days card | Is this agent or team in use, and what is it costing? |
| Observability tab | How often it runs, how many tokens it uses, how efficiently it uses tools, what errors it hit, and what happened in each session |
| History tab | Who changed the configuration, when, and what changed |
| Settings → Usage & Cost | Spending across the organisation. See Usage and Billing. |
Agents, teams and functions each have an Observability tab.
The Observability tab
Effectiveness Metrics
Choose a period: 7d, 30d (the default) or 90d.
| Card | Meaning |
|---|---|
| Invocations | Agents: chat sessions started directly with the agent. Teams: chat sessions with the team. |
| Tokens | All model tokens the agent used in the period, input and output combined. For a team, all tokens in its sessions. |
| Est. Cost | Estimated model cost for those tokens. |
| Completion | The share of those sessions that reached the completed state. |
Below the cards, a chart shows daily invocations, if there were any.
For agents, Invocations and Completion count only sessions started directly with the agent. Tokens and Est. Cost include every model call the agent made, including calls made as a team member, in a workflow or as a sub-agent. An agent that mostly works inside teams can therefore show tokens but few invocations.
For a function, the cards are Calls, Approved, Denied and Sessions.
Chat Efficiency (agents)
These cards show how well the agent used its tools in chats during the period:
| Card | Meaning |
|---|---|
| Chat sessions, Turns, Tool calls | Volume |
| Calls / turn | Average tool calls per turn |
| Hard failure rate | Share of tool calls that errored, timed out or were denied |
| Duplicate call rate | Share of tool calls that repeated an identical call (same tool, same arguments) in the same turn |
| Polling call rate | Share of tool calls that were the fifth or later identical call in a turn. This is a sign the agent is polling. Use wait_for_event instead. |
| Cached input share | Share of input tokens served from the model provider's prompt cache. Higher is cheaper. |
| Est. cost | Cost of these chats |
| Sessions w/ failure streak | Sessions with three or more failed tool calls in a row |
Chips below the cards count tool errors by error class.
Recent Errors
Error-level log entries for the agent or team from the last 24 hours, up to 20 rows. The columns are Timestamp, Level, Message and Session. Click the refresh icon to reload.
If log search isn't available in your environment, the section shows "Elasticsearch is not configured. Error logs unavailable."
Audit Trail
One row per chat session in the period, newest first, 20 per page:
| Column | Meaning |
|---|---|
| # | Session ID |
| Started | When it started |
| Message | The first 120 characters of the opening message |
| Msgs | Number of messages |
| Status | Session status |
| Tools | Number of tool calls |
Expand a row to see each tool call: the function name, a preview of its arguments, whether it was approved or denied, and when it ran.
The History tab
The History tab lists every configuration revision of an agent, team, function or model configuration.
| Column | Meaning |
|---|---|
| Rev | Revision number |
| Action | created, updated, deleted, rolled back, killswitch on or off, or generated |
| Actor | Who made the change |
| Source | Where the change came from |
| When | When it was made |
| Changed Fields | Which fields changed |
Expand a revision to see each changed field's old → new value, and a Compare with previous side-by-side diff of the whole configuration.
Restoring a revision
- Click Restore this revision to put the configuration back as it was.
- History is never rewritten. The restore is recorded as a new revision.
- Credentials are never restored, and neither is the killswitch state.
- References to entities that have since been deleted are skipped, with a warning.
- Restoring requires the project Editor role.
Killswitch
Every agent, team and function has an Active / Killed switch in its header, which stops it running immediately. Each use is recorded on the History tab. See Agents.
Activity page
The Activity page lists runs that weren't ordinary chats: workflow runs, webhook and schedule triggers, program activities, sub-agent runs and Claude Code delegations. Runs are grouped as Needs you, Running, Failed and Done, and you can filter by origin.
- Organisation Owners and Admins see every run in the project ("Showing every run in this project.").
- Everyone else sees their own runs.
The page is at /activity in the app. It doesn't currently have a link in the left navigation.
API and MCP
All of these endpoints are scoped to your organisation, and return 404 for entities outside it.
| Method and path | Purpose | Parameters |
|---|---|---|
GET /observability/agents/{id}/summary | Effectiveness metrics | days: default 30, 1–365 |
GET /observability/agents/{id}/errors | Recent error log entries | hours: default 24, up to 168. size: default 20, up to 100 |
GET /observability/agents/{id}/audit | Per-session audit trail | page. page_size: default 20, up to 100. days: default 30 |
GET /observability/teams/{id}/summary, /errors, /audit | The same, for a team | The team summary also includes top_agents: members ranked by tokens |
GET /observability/functions/{id}/summary, /errors, /audit | The same, for a function | |
GET /observability/chat-stats | Chat efficiency | days, optional agent_id |
GET /history/{type}/{id} | Revision list | type is agent, team, function or llm_config |
GET /history/{type}/{id}/{rev}/diff | Diff between revisions | |
POST /history/{type}/{id}/{rev}/rollback | Restore a revision | Requires Editor |
POST /killswitch/{type}/{id} | Kill or reactivate | Body: active, terminate_sessions. Requires Editor |
GET /agents/run-async/{execution_id} | Status of a background agent run: pending, completed or error |
The summary, errors and audit endpoints cover the whole organisation unless you pass project_code.
The Platform MCP server exposes the same data through tools such as get_agent_observability_summary, get_agent_errors, get_agent_audit_log, their get_team_… equivalents, and get_agent_run_status.