Tools provided
Tools the agent exposes — your AI client calls them automatically when it needs them.
- check_decline — Say whether a decline between two periods is real or noise, and - only when it is real - what else besides the creative could explain it. Compares the LATEST period against an earlier BASELINE with the same 95 percent interval compare_variants uses; below ${MIN_SUCCESSES} successes on either side the verdict is 'too thin'. Never outputs a fatigue score and never names a cause - a real decline is reported with the competing explanations the data cannot rule out.
- compare_variants — Say which of your ad variants the data can actually tell apart. Each is compared to the one you list FIRST with a 95 percent interval on the difference; an interval containing zero comes back INDISTINGUISHABLE - not a smaller win - with the trials each side would need to settle it. Below ${MIN_SUCCESSES} successes the verdict is 'too thin', a refusal rather than a wider interval. It does NOT rank by rate: 2 conversions in 40 clicks is 5 percent, and so is 2 in 41.
- plan_budget_shift — Say what a proposed budget shift between two campaigns actually assumes. Reports each campaign's return AND the spend range it was observed over, states how far outside that range a proposed move would push it, and NEVER projects a return for spend that has never been observed - diminishing returns make the next dollar worth less than the average of the ones already spent, not the same.
- review_search_terms — Say which zero-conversion search terms have earned a negative and which have simply not had enough clicks. At a 3 percent rate, eight clicks produce zero conversions about 78 percent of the time - so most zero-conversion terms are the ordinary result, not bad terms. Each is weighed against YOUR baseline: above ${Math.round(SURPRISE_THRESHOLD * 100)} percent chance of zero it is NOT YET JUDGEABLE, and its spend is reported as the cost of finding out rather than added to waste.
- run_full — Run every capability you supplied the input for, in registry order, and return one report. Capabilities whose input is missing are listed as skipped with the fields they need — never run against a fixture and never reported as zero.
- list_capabilities — List what this agent can do: every tool it advertises, what each one is for, and the arguments each one reads. Useful for discovery before the first call.
- plan_inputs — Plan the inputs for a tool: returns the questions to ask, the JSON schema of the arguments, and a ready-to-edit example. Every argument it names is an argument the tool actually reads.
- discover_intent — Understand your goal and co-design the exact input through clarifying questions before anything runs.
- open_form — Use this the moment the user wants to run this agent on their own input. It opens an interactive form that collects the run arguments. Do NOT check credentials, do NOT ask clarifying questions in chat, and do NOT run any analysis before calling this — the form is the entry point for running the agent.
- run_form — Internal: invoked by the open_form form when the user submits. Reads exactly the same arguments as run_full and forwards all of them. Not for direct use.