An agent is a document with a list of tools, and the list is the product.
An agent is one stored record: a name, a model code, an instruction block, an optional user guide, and an ordered list of tools. At run time that list is walked in order and each entry is compiled into a real tool the model can call. What an agent is able to do is something you read, not something you have to trust.

Tool types you can attach to an agent, from a web search to a whole Full Stack VPS
Situations that hand an agent its write capable tools. Agent Mode left on auto is not one of them
Platform methods the project assistant can carry as tools in a single turn
Channels an unattended auto response covers: chat, widget, email, contact form, phone
Nine tool types, and what each one actually becomes.
The picker is a finite list, and every entry is compiled by one switch into a specific object at run time. Nothing is implicit and nothing is on by default: whatever an agent can reach, its author attached by hand.
A plain chat gets a defanged agent, on purpose.
One line decides whether this run gets the agent real tools. When it is false, every write capable tool is skipped and the agent is dropped from the run list entirely. Web search, file search and table bind either way, which is the read only exception.
- Turning Agent Mode on with no agent named means consider all of them. The code does not read that as choosing, so it stays gated.
- Naming agents in the composer counts as choosing. It was added because it did not: an agent whose tools were all plugins was marked ineligible, dropped from the handoff list, and the router answered alone with no tools at all.
- The read only three are the exception list rather than a declared policy. It is which cases lack the guard, and it is worth knowing that is the shape of it.
- Once the gate opens, everything on that agent binds. A hosted MCP tool is opened with approval set to never, so there is no second prompt at call time.
An installed agent runs its publisher code against your data, so it has to ask.
Install an agent from the marketplace and its plugin package still loads from the publisher project, because that is the only project the package is installed into. What it acts on is you: the sandbox is handed your project and your id, so anything it produces lands where you can find it. Foreign code against your own data is the thing being consented to, and the check runs before the tool is ever handed to the model.
An agent runs when something asks it to. Nothing runs one on a clock.
Name exactly one agent in the composer and it runs directly. Leave it open and a triage agent that holds no tools of its own routes the turn by handing off to the agents that do.
- The runtime turns each handoff into a transfer tool named after the agent, which is why a display name is reduced to letters, digits, underscore and hyphen and clipped to 55 characters. Naming agents after document ids gave the router nothing to route on, so it answered everything itself.
- Naming exactly one agent skips the router, because a router over a list of one is not a routing decision. It used to build one anyway, and offered to route a request instead of doing it.
- There is no scheduler. The one unattended path is auto response, and it fires on an inbound message rather than on a timer, across chat, the chat widget, email, contact forms and phone. It answers nothing until a plan is switched on.
- An agent stores its own model code, and that code applies when the thread is the agent own thread or you clicked a suggestion. An agent you name in a plain chat runs on the chat model instead.
- You askIts own thread, or you name it in the composer
- Its tools bindNaming it is a choice, so the full set is allowed
- One agent, or a routerExactly one runs directly, otherwise a triage agent hands off
- The phases streamPreparing tools, then Running and Finished per tool, then Streaming results
One rule picks a model for you, and it never reaches the expensive ones.
In a chat and in an agent thread the model is the one the request names, defaulting to the cheapest in the catalogue. Exactly one function anywhere chooses automatically. It runs on the project assistant only, it runs only when you picked nothing yourself, and it has two outcomes.
Nine models, and what an agent stores is the code on the left.
A profile or an agent never stores a provider model id. It stores a short catalogue code, and the code becomes a real model id only at the moment the request leaves, which is how the catalogue was renumbered with no data migration and why eight legacy keys still alias forward. Billing and validation stay on the code. The rates below are the catalogue rates a usage record is priced at, per million tokens. What one credit is worth is deliberately not stated here, because the conversion the ledger reports is computed outside the application.
Sent to the provider | Input per 1M tokens | Output per 1M tokens | Chosen by the one automatic rule | |
|---|---|---|---|---|
| gpt-1, GPT-5 Nano (the default) | gpt-5-nano | $0.05 | $0.40 | |
| gpt-2, GPT-5.4 Nano | gpt-5.4-nano | $0.20 | $1.25 | |
| gpt-3, GPT-5.6 Luna | gpt-5.6-luna | $0.20 | $1.20 | |
| gpt-4, GPT-5.6 Terra | gpt-5.6-terra | $2 | $12 | |
| gpt-5, GPT-5.6 Sol | gpt-5.6-sol | $5 | $30 | |
| img-1, GPT Image Mini | gpt-image-1-mini | $2.50 | $8 | |
| img-2, ChatGPT Image Pro | gpt-image-2 | $8 | $32 | |
| voice-1, Whisper Speech AI | whisper-1 | $1 | $1 | |
| voice-2, GPT Realtime Voice | gpt-realtime-2.1 | $32 | $64 |
Five collections, one shell, and one rule about deleting.
AI Chats, Apps, Contacts, AI Agents and Profiles are five tabs on a single route, each answered by one method named after its own tab. An agent is a record in one of those five, so the verbs you learn on one collection you already know on the other four.
- Sharing an agent hands over a pointer rather than a copy. The recipient gets a document carrying the same id and the owner id, and the runtime reads through to the original, so a shared agent keeps up as its owner edits it.
- A per agent trail records which fields moved rather than that something changed. An instructions edit travels as a character count, a tool change as a count, and an edit made directly in Studio is caught by comparing against the previous revision.
- Expert mode opens the same agent document in Studio. It is one object with two editors, not an export.
- Creating an agent returns as soon as the document exists and the rest runs detached, in three named steps: Setting up, Reading files, Making picture. A step that fails is recorded and the run continues rather than stranding the agent in preparing.
The questions you are forming right now
Four of these six answers are a limit. They are here because you would hit them in week one anyway.
Watch an agent pick up a tool and use it.
Give one agent one tool and watch what it reaches.
Attach a web search and it works in any chat. Attach a plugin or a Full Stack VPS and it works the moment you name the agent. What it can do stays a list you can read.