Approvals
Operate › Approvals is the inbox for tool calls held for a person. When an agent asks for a tool that needs approval, the call does not run: the run stops, the call waits here, and an Admin or Reviewer decides. Approve and run runs the tool and lets the agent carry on. Reject records why and runs nothing. A call nobody answers within 24 hours expires and never runs.
For the idea behind this, see Human approval.
How a call comes to wait
Section titled “How a call comes to wait”- A Builder or Admin marks a tool as Held until a person approves under Which tools need approval, in the agent’s Limits & approvals step. Tools left at Runs without asking run when the model calls them. See Create and edit an agent.
- During a run, the model asks for a held tool. Olympusx AI does not call it. It records one approval per held call, with the tool, the agent, who asked and when, and stops the run with the outcome Waiting on approval.
- The person who asked sees that the answer is waiting: an assistant’s chat says Waiting for an approval before this can be answered. and updates when someone answers; an agent’s preview says the conversation continues there when a reviewer answers.
- Every Admin and Reviewer in the tenant receives a notification, An agent is waiting for approval, which says the request expires in 24 hours. The Approvals row in the rail shows how many calls are waiting.
Who can open it
Section titled “Who can open it”| Role | Sees the inbox | Sees the call’s arguments | Approves or rejects |
|---|---|---|---|
| Admin | Yes | Yes | Yes |
| Reviewer | Yes | Yes | Yes |
| Auditor | Yes | No | No |
| Platform admin | Yes, in every tenant | Yes | Yes |
| Builder, End user | No | No | No |
The count in the rail is shown only to the roles that can answer.
What you see
Section titled “What you see”The inbox
Section titled “The inbox”- The page header, with the tenant picker.
- The Waiting on a human table, with a search field (Search approvals) and a Show filter: Waiting (the default), Approved, Rejected, Expired or Everything.
| Column | What it shows |
|---|---|
| Agent | The agent that asked, as a link to it. |
| Waiting on | The tool it wants to call. |
| Asked by | The person whose request the agent was working on. |
| When | When the call was held. |
| Expires | For a waiting call, when it expires. It reads Closing soon in the last two hours, and Expired once past. For an answered call, its state. |
| Actions | Review, which opens the call. |
When nothing is waiting, the page says Nothing is waiting for approval. When another filter matches nothing, it offers Show what is waiting.
A held call
Section titled “A held call”Select Review to open one. The title says what is being asked: <agent> wants to run <tool> (or asked to run, once it is closed), with who asked and when, and a tag with its state.
The request:
- Tool, Agent, Asked by.
- Waiting (how long, and since when) and Expires, while it is open. Decided (who, when and their reason) or Expired, once it is closed.
- For an Admin or Auditor: Run, a link to the run that asked; Conversation, a link to every run in that conversation; and Ran as, a link to the run an approval resumed.
- Arguments: the arguments of the call, read from the conversation as the tool would receive them, with Copy and Show more. Only an Admin or Reviewer sees them; an Auditor sees a line saying seeing the arguments takes one of those roles.
This tool’s history: the earlier requests from the same agent to run the same tool, how they were answered (a count per state), and the five newest with who answered and when. The first request says so.
What led here, for an Admin or Auditor: the run’s steps up to the held call, with the held step selected. See Runs for how to read it.
The decision bar, pinned to the bottom of the window while the call is open, for an Admin or Reviewer: how long it has waited and when it expires, a Reason (required to reject) field, Reject, and Approve and run.
What you can do
Section titled “What you can do”Approve a call
Section titled “Approve a call”- Open the call and read its arguments. Approve and run is offered only once the arguments are on screen.
- Select Approve and run.
- The dialog Approve and run
<tool>? says the agent runs it now, on the conversation that asked, as a new run for the person who asked, and that your name is recorded. Select Approve and run to confirm.
Olympusx AI then:
- records your decision and writes it to the audit trail with your name;
- runs the tool, and lets the agent carry on in the conversation that asked, as a new run linked to the first. The new run acts for the person who asked, not for you, under the agent’s own limits;
- shows Approved — the tool ran, with the agent’s answer or how the resumed run ended, and View the run the approval resumed;
- updates the notification to say the call was approved.
Reject a call
Section titled “Reject a call”- Open the call.
- Type why in Reason (required to reject). If you select Reject with no reason, the field asks for one: the reason goes back to the conversation.
- Select Reject.
Olympusx AI records the decision and your reason in the audit trail, does not run the tool, and ends the run as Rejected. On an assistant conversation, your reason becomes the assistant’s reply to the person who asked, which ends their wait. The notification updates to say the call was rejected.
Close a call that can no longer run
Section titled “Close a call that can no longer run”If the conversation that asked was erased, or has passed its retention, the held call went with it. The decision bar says This call can no longer run and offers only Reject. Reject it, with a reason, to close it.
Find calls answered earlier
Section titled “Find calls answered earlier”Set Show to Approved, Rejected, Expired or Everything.
Expiry
Section titled “Expiry”A held call waits 24 hours from the moment it was held. Then it is Expired:
- it cannot be approved or rejected, even from a page left open;
- the tool never runs;
- the person who asked sees The approval window closed without an answer. Ask again.
Olympusx AI decides expiry when it reads the call, so a call is never approved by default, even if the platform was stopped while it waited.
Edge cases
Section titled “Edge cases”| What happens | What you see |
|---|---|
| Someone else answered first | The call reads This approval is <state>. Nothing more to decide. |
| The arguments could not be read | Approve waits for the arguments, which could not be read. Use Try again in the request. |
| The conversation, agent or run disappeared at the moment you approved | Approved, but the call did not run, with the reason. Your decision stands. |
| You hold Auditor only | The page ends with Answering an approval takes the Admin or Reviewer role. |
Limits
Section titled “Limits”| Limit | Value |
|---|---|
| Time to answer | 24 hours from the request |
| Arguments shown | The first 16 kB; the page says when they were cut |
| Calls listed | The 200 newest for the chosen state |
| Reason to reject | Required |
| Rail count refresh | Every minute |
The arguments are read from the conversation each time the page opens. They are not copied into the approval, the notification, the audit trail or any log, so they are kept and erased with the conversation. See Data retention and Erasure.