Skip to content

Agents

PulseAd is run by agents at three layers. A new product leader should hold this shape before the details:

  1. In-app agents — the 11 agents a user opens in the Pulson app under /agent/..., grouped into Planning, Reporting, and Campaign.
  2. The chat engine — when a user talks to Pulson, a graph of agents (router → specialist → composer) answers, in ai-api.
  3. Autonomous back-office agents18 scheduled/orchestrated agents in pulsead-agents that monitor accounts, rebalance budgets, and run keyword automation, mostly on cron — these power what the in-app agents display. (Down from 21 after the legacy weekly-report LLM pipeline — 4 agents — was deleted 2026-06-25; up by a new single-agent support-reminder job added 2026-08-06. See What’s deprecated.)

Two facts that cut across everything:

  • Models split by service. ai-api (chat, reports) runs on OpenAI GPT‑5 family models. pulsead-agents (autonomous) runs on AWS Bedrock — Claude Haiku 4.5 by default, Claude Sonnet 4.6 for the writer/decision agents. The Snowflake semantic layer’s Cortex Agent also uses Sonnet 4.6.
  • Reads are free; Amazon writes are hard-gated. Real Amazon Ads budget/bid writes are gated to a single pilot brand (KISS) today, and every write path is behind approval or an explicit auto-approval toggle. See Capabilities.

Eleven agents, in three families. “Default” is whether it’s on for a brand without any setup.

AgentFamilyReadsCan change Amazon?Default
News & Market IntelligencePlanningExa.ai news/search (8 marketplaces)NoOff (per subscription)
Pulson Weekly ReportReportingSnowflake performance (ops-curated/published)NoActive (managed tier)
Weekly Report GeneratorReportingSnowflake performanceNo (suggestions only)Active
Monthly Report GeneratorReportingSnowflake performanceNo (suggestions only)Active
Daily Brief GeneratorReportingSnowflake performanceNo (suggestions only)Active
Overview DashboardReportingSnowflake performance (KPIs, trends, product deltas)NoActive
Event MonitoringReportingAmazon event-window performance by countryNoActive
AMC BuilderCampaignAmazon Marketing CloudNo (read-only)Active
Campaign OptimizerCampaignAds campaign structure/metricsYes — propose → chat-approveActive
Keyword OptimizerCampaignSearch Query/Search Term performanceYes — propose → chat-approveActive
Budget AutomationCampaignSnowflake pacing/targetsYes — autonomous under policyOff (until a cycle runs)

All 11 are defined in one registry (pulsy-frontend/src/core/agent/agent-registry.ts).

When a user types into Pulson, Action Chat answers — a LangGraph state machine, rebuilt each turn: router → one specialist sub-agent → composer.

AgentRoleReads/writesModel
RouterClassifies the message (query / insight / action / task) and resolves contextRead-onlygpt-4.1-mini
Query sub-agentAnswers about your own performance/sales/budget from Snowflake; draws chartsRead-onlygpt-5.5
Insight sub-agentExternal/market lookups — competitors, keywords, ASIN detail (web search)Read-onlygpt-5.5
Action sub-agentThe only agent that can change an Amazon account — bids/budgets/keywords/targets, custom reports, AMC, optimize-cycle, diagnosisWrite (gated)gpt-5.5 / gpt-5
Task sub-agentManages the internal inbox & tasksInternal writes onlygpt-5-mini
ComposerWrites the final reply (“Your name is Pulson”)Read-onlygpt-5.5
Memory AgentBackground — observes each turn, builds durable brand memory (16-card classifier)Internal writes onlygpt-5-nano

Two adjacent chat surfaces: Pulson / “Growth Twin” (the live brand-facing chat, /pulsy/chats) and PSM (the original engine, legacy/frozen — see the timeline).

AgentWhat it doesReads/writes
Dashboard Report AgentThe real report engine — a 3-phase pipeline (fetch data → plan directives → render KPI bands / cards / charts / tables). Powers the Reporting generators.Read-only (writes report rows)
Reporter AgentRegenerates a single report section on requestWrites report rows
Performance DiagnoseFinds declining SP/SB/SD campaigns, root-causes them, recommends 1–5 actionsRead-only — recommends, never applies
News IntelligenceBrand/market/competitor news briefings via Exa.ai (not an LLM chat agent)Read-only
Search-term segmentationBatch-classifies Amazon search terms into segments + brand recognitionRead-only · Gemini 2.5 Flash-Lite (the one non-OpenAI model in ai-api)

4. Autonomous back-office agents (pulsead-agents, 18)

Section titled “4. Autonomous back-office agents (pulsead-agents, 18)”

These run on schedules or orchestration in the AWS Bedrock/AgentCore layer. They do the heavy lifting; the in-app agents mostly display their output. Every proposer writes to an approval queue; only an executor acts, and only after approval (and the KISS-only live gate).

Campaign Health — daily monitor → diagnose → fix loop:

  • monitoring — daily anomaly detection (ROAS drops, cost surges, Buy Box loss). Read-only. ~07:00 KST Mon–Fri.
  • diagnoser — root-causes anomalies, proposes structural actions (pause, audit). Proposer.
  • rtb_analyst — RTB rule-group analysis, proposes bid/budget tuning. Proposer.
  • executor — applies approved actions (bid/budget/pause). Write, manual-only.

Optimize Cycle — automated budget rebalancing (the engine behind Budget Automation), 1-min schedule poller, two human gates:

  • input_checker (P0) → monitor (P2) → rebalancer (P3, proposer) → approvaloptimizer (P4, proposer) → approvalexecutor (P6, write) → verifier (P7, write).

Ads Scheduling — natural-language scheduled changes:

  • ads_scheduler (NL → scheduled task) → ads_executor (runs due tasks every minute; write, gated).

AMC — the engine behind AMC Builder:

  • routeradvisor (answers AMC questions) / writer (generates & saves AMC SQL; does not execute).

Proactive Keyword — alert-driven proposers, now surfaced in-app as Keyword Optimizer:

  • keyword_harvester (proposes profitable exact-match keywords) and waste_keyword_pauser (proposes pausing zero-click spend). Both propose → approval card → gated mutation.

Support — reminder-only, added 2026-08-06:

  • support_reminder — flags unanswered support items past a threshold and drafts a Hermes reminder. Read + draft only; it does not send or resolve tickets itself.

AOP / aop-hermes is a separate operator-facing agent CLI for PulseAd staff — not part of the Pulson product, and not behind the propose→approve gates (its ~45 Amazon Ads write actions are guarded only by per-tool dry-run). See the name map and Capabilities. It’s listed here for completeness; it isn’t one of the in-app agents.

The in-app agent you click is usually a window onto a backend engine:

In-app agentPowered by
Budget AutomationOptimize Cycle (6-agent pipeline)
Campaign OptimizerAction Chat’s Action sub-agent → ads_* mutation tools
Keyword OptimizerProactive Keyword back-office agents (keyword_harvester + waste_keyword_pauser)
AMC BuilderAMC agents (router/advisor/writer)
Weekly / Monthly / Daily ReportDashboard Report Agent
Overview Dashboard / Event MonitoringDynamic Dashboard engine (ai-api, shipped 2026-06-19)
Pulson Weekly Reportai-api weekly-report API, serving ops-curated content (the old back-office pipeline was retired 2026-06-25)
News & Market IntelligenceNews Intelligence service (Exa.ai)

Read the per-family pages for the full capability of each in-app agent.