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 10 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 agents21 scheduled/orchestrated agents in pulsead-agents that monitor accounts, rebalance budgets, write reports, and run keyword automation, mostly on cron — these power what the in-app agents display.

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.

Ten 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)
Biweekly Marketing ProposalPlanningRecent performance + market contextNoActive (managed tier)
Product DiscoveryPlanningCategory / brand / ASIN / keyword signalsNoActive
Pulson Weekly ReportReportingSnowflake performance (managed/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
AMC BuilderCampaignAmazon Marketing CloudNo (read-only)Active
Campaign OptimizerCampaignAds campaign structure/metricsYes — propose → chat-approveActive
Budget AutomationCampaignSnowflake pacing/targetsYes — autonomous under policyOff (until a cycle runs)

All 10 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, 21)

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

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).

Weekly Report pipeline — the engine behind Pulson Weekly Report:

  • data_preparercontext_builderreport_writer (Sonnet 4.6) → approve / reject→auto-rewritepublisher (HTML to S3 + Slack).

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:

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

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
AMC BuilderAMC agents (router/advisor/writer)
Weekly / Monthly / Daily ReportDashboard Report Agent
Pulson Weekly ReportWeekly Report pipeline (published by ops)
News & Market IntelligenceNews Intelligence service (Exa.ai)

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