E-commerce AI agent · Shopify store
An autonomous AI agent for an e-commerce store
ACTIVE 24/7 · crons since 05/2026
Context
A French Shopify store — around 96 active products across 19 collections — run by a non-technical founder. A first automation phase (a dependency-free Node.js toolkit, the Admin GraphQL API, AI-assisted content generation) had already cleaned up the catalog: 369 mutations applied without a single error, critical issues down from 169 to 1, internal SEO score up from 6.8 to 10/10, and email marketing migrated from Klaviyo to Shopify Email.
Problem
The tooling still needed someone to run it, read its reports, and approve its actions. Three options once the engagement ended: a freelancer (unpredictable cost), a SaaS (subscription, lock-in), or an agent that monitors the store, proposes actions every week, and learns from its own results. The third option won.
Approach
Before any code, the scope was fixed in a written mission charter, reviewed and amended by the owner: monitored sources, delivery cadence, three autonomy levels, non-negotiable rules. The agent itself was built with Claude Code on a skills architecture with local semantic memory — robustness comes from that architecture as much as from mastery of the cutting-edge AI tools that drive it. A “mega-prompt” mode was tested first — it produced fabricated results and was rejected in favor of this tooled approach. The system stays independent of any single LLM provider: during the final acceptance test, a rate limit was worked around by switching providers in 5 minutes, without a restart.
What was delivered
- 21 skills in production at the client — KPI audits, monitoring, SEO and content generation, Shopify mutations with snapshot and rollback, emailing, reporting — including 4 the agent created itself after detecting recurring patterns, each approved by human review before activation; 25 skills in the open-source framework.
- 4 cron jobs (Europe/Paris): a weekly performance report every Monday at 9 am, creative proposals every Saturday at 10 am, a self-improvement meta-review every Sunday at 8 pm, and a conversion watchdog every 6 hours that makes no LLM call at all.
- Local semantic memory: embeddings computed on the VPS itself (a 36 MB local model, SQLite storage) — no data sent to any embeddings cloud.
- Hosting: Ubuntu 24.04 LTS VPS (OVH, France), key-only SSH, UFW firewall, systemd services. Total recurring cost: under €10 a month.
Stack
- Python
- Node.js
- Bash
- Shopify Admin GraphQL
- Klaviyo
- Telegram
- Ubuntu 24.04 VPS (OVH)
- systemd/cron
- SQLite (local semantic memory)
- Swappable LLM (OpenAI-compatible API)
Observed results
14 May 2026 — final end-to-end acceptance test: 9/9 criteria passed, 0 hallucinations, 0 persistent mutations, 11/11 emails confirmed with technical evidence, 5/5 adversarial tests passed — including refusing a disguised instruction asking it to ignore its own rules.
dated acceptance test · 14 May 2026
18 May 2026 — first real weekly performance report sent to the client.
dated client deliverable · 18 May 2026
27 May 2026 — 88 cron runs completed without error since go-live; a batch update of 62 products in a single run; roughly 1.08M tokens consumed over 7 days for about 6 hours of active work.
dated execution tracking · verified 02 Jul 2026
What stays human
Three layers of guardrails, written as immutable rules: the agent acts alone only on risk-free fixes (alt texts, tags, empty meta titles); it proposes and waits for Telegram approval on descriptions, prices (under 5%), and publication drafts; it never acts alone on prices beyond 5%, deletions, the theme, or payments. Every social media post requires the merchant's explicit approval.