Platform insights
Platform insights is a built-in tool suite that lets an agent answer questions about the platform itself: what the AI costs, who uses it, what was created and when, how adoption evolves, who changed what. It reads the same figures as the administration pages - LLM Analytics, AI Adoption, Objects and the audit log - so what an agent tells you matches what those pages show.
Ask, for example:
- "Graph the cost of AI agents for the group Customer Success over the last 90 days."
- "How many presentations were created each week since each release?"
- "Which models cost the most this month, and how does it compare with last month?"
- "Who deleted an agent last week?"
- "What does this platform hold today?"
The answer comes with a chart drawn in the conversation when it helps, and with the warnings the dashboards show next to the same figures.
Who can use it
The suite is one built-in tool, Platform insights, chosen in the Built-in Tools card of an agent's configuration.
- Administrators read the whole platform: every user, group, agent and object.
- Anyone else reads their own slice only: the objects they own, the usage they generated, the groups they belong to, the audit entries of their own actions. Naming another person, or a group they are not a member of, is refused.
Every result says which of the two it served. When strict admin access for agent tools (access.agent_tools_strict_admin_access, see Settings) is on, an administrator's agent reads their own slice as well.
The General Assistant carries the suite by default for administrators (Settings > General Assistant lists it, and an administrator can remove it there). It is not offered to other users' General Assistant; an agent that carries it serves them their own slice.
All the tools read only. They never ask for approval, and the audit log tool records each of its own reads in the audit log (once per identical read every 15 minutes), so reading who did what leaves a trace of who looked.
The tools
| Tool | What it reads |
|---|---|
query_platform_analytics |
LLM usage: cost, tokens, traces, latency, error rate and feedback, as a total or per agent, user, group, model, source, day, week, month or release |
query_platform_objects |
The objects of the platform - agents, assignments, runs, conversations, presentations, videos, reports, files, flows, workspaces, work items and more - listed, counted per type, or counted per day, week, month or release of their creation |
get_platform_release_history |
The builds the platform has run, with when each was first and last seen |
query_ai_adoption |
The AI Adoption dashboard: active users, usage, daily active users, adoption gaps and GitHub Copilot development metrics, with each provider's sync status |
query_audit_log |
Audit entries filtered by actor, action, entity, period and text, 200 at most per call |
get_platform_overview |
What the platform holds today: objects per type, agents by state, assignments by trigger, integrations by provider, knowledge base chunks, machines online, file storage, the deployed build, the feature flags on, trace retention and whether the analytics aggregation is fresh |
render_chart |
Draws the rows another tool returned as a chart in the answer |
Reading the figures right
The agent repeats the warnings that come with a figure. They are the same ones the dashboards show:
- Groups are current membership. A trace counts for the groups its user belongs to today, not the ones they belonged to when it ran. A person in several groups counts in each of them, so group totals can add up to more than the platform total.
- Unattributed and ungrouped usage. Traces with no user (an anonymous channel sender, the public widget, an owner-less run) and users in no group are reported apart, never dropped.
- Stale aggregation. When the daily analytics aggregation has not run for more than 48 hours, older days may still move once it catches up.
- Coverage start. A window that reaches further back than the oldest data the platform still holds is flagged: the missing days are missing data, not zero activity.
- Hidden costs. When cost data is hidden on the platform, every cost is reported as unavailable, never as zero, and no chart is drawn of it.
- Partial buckets. The first and last week or month of a window cover only the part of it inside the window.
Not every metric has every breakdown: the analytics read path has no token or error rate time series, for instance. The agent is told which breakdowns a metric has.
Releases
The platform records each build it boots with - the version shown in the About dialog and its commit - and when it was first and last seen. A count or a cost can then be cut per release: a release is the deployed one from its first boot until the next build's.
The history starts at the first boot of a release that records it; nothing before it is backfilled. Whatever predates it is counted under before_release_history, and the agent says so. Analytics are kept per day, so a day on which a new build was first seen counts for that build.
Charts in the conversation
render_chart turns query rows into a bar, stacked bar, line, area, pie or donut chart drawn in the answer, with its title and a caption. A chart holds at most 16 categories and 6 series - the same bounds as a chart in a presentation - so a 90-day window is charted per week or per month.
A chart never invents a figure: a hidden cost, or a missing value of an average, refuses the chart instead of drawing a zero.
When the conversation is exported (the chat menu's Export as Markdown and Export as PDF), or when the answer is delivered to Slack or Teams, each chart is written as a table of its values.