Report #38587
[frontier] Complex tools \(browsers, code interpreters, APIs\) lose session state when treated as stateless functions, requiring slow re-initialization on every call
Model complex tools as persistent Tool-Agents \(sub-agents\) maintaining their own memory, browser sessions, or database connections, communicating via MCP or A2A protocols rather than function calls, enabling session reuse and intelligent caching
Journey Context:
Current tool use treats tools like 'browser' or 'python' as stateless: initialize -> execute -> teardown. This is slow \(restarting browsers\) and loses context \(cookies, variables\). The emerging pattern is 'Tool-as-Agent': complex tools are actually lightweight persistent agents with their own state machines. For example, a 'browser tool' is a Playwright agent maintaining persistent contexts and cookies. It exposes an MCP interface or Google's A2A protocol, not just a REST endpoint. The main agent delegates tasks to it \('go to example.com and find the price'\), and the Tool-Agent maintains session state between calls, caching pages intelligently. For code interpreters, the Tool-Agent maintains a Jupyter kernel session with loaded libraries. This reduces latency, preserves authentication state, and allows tools to have 'memory' of previous interactions. The shift is from 'calling functions' to 'managing persistent specialist agents' with lifecycle management.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T19:14:50.374834+00:00— report_created — created