agent.json:
lifetimeS (60 to 1800, default 900) is how long a session may live and idleTimeoutS (30 up to the lifetime, default 300) how long it lives without an action.
What the Model Gets
telnyx-acp tools lists the seven names, which approvals and the log lines use.
A page’s tree is cut at 20,000 characters and 300 refs, so one call never floods the context. The observation the platform wants with every click, fill and select is kept by the loop, not the model: a stale one is refreshed once before the action is retried, and a ref that is gone because the page re-rendered comes back as an error that carries the page read again, so the model picks a new ref without another call.
Sessions
One active session at a time per run, opened on the firstbrowser_open and closed when the run ends, so GET /v2/browser_sessions?status=ready shows nothing left once the agent has answered; a run paused for approval and a later run on the same conversation hold their own sessions, pages and budgets. The platform wants a domain policy for every session and takes no wildcard, so each site the model opens gets a session on that host and its subdomains (and the bare host when it opened www.); opening another site closes it and opens one there, and a link that leads off the site answers the model “that link leads to another site; browser_open its URL to go there”, which the model then does. No apex is guessed from the host, since *.github.io would be every Pages site and co.uk has no single answer. A session the platform ended is reopened once; a site that refuses automated visitors answers “the site refused to load in the browser”.
The journal has one line per call with the URL or ref and the time it took, and one for each session opened and closed. A browser_fill line never carries the value, which may be a credential.
browser_open of a run is slow, as is each switch to another site, and the rest are fast. limits.browserActions caps the actions of a run, 40 by default: past it every browser tool answers that the run has used its actions.
Approvals
Mark a browser toolask to have a human decide before it runs; browser_fill is the usual one, since a fill may submit a form or carry a credential. Approvals has the flow, which works under telnyx-acp dev today.