2026-07-27 · 12 min read · Raw Drafts / AI Agents / Grocery / Agentic Commerce / Interaction Design

The Shopping List Is Becoming a Constitution

A grocery agent does not merely build a basket. It turns budget, values, substitutions and commercial loyalties into a permission system that decides what becomes visible and whose interests the software serves.

AI grocery shopping agentagentic commerce groceryshopping agent permissionsRimi Selver ViljandiWolt grocery ViljandiGreen Filter shopping agentsustainable grocery agentAI agent spending limits
Version 1Kris HaamerJuly 27, 2026View history

I had been looking at the projects from ETHGlobal Lisbon, where people were building AI agents with identities, wallets, spending limits and the ability to pay other machines for information. The demos involved verifiable credentials, autonomous transactions and protocols with names that made the whole thing feel several years away from ordinary life.

Then I asked a much less impressive question: could I connect one of these agents to Selver or Rimi and use it to buy groceries in Viljandi?

The question immediately made the technology more difficult.

An agent buying access to a blockchain API is clean. An agent trying to buy milk, detergent and tomatoes is not. The tomatoes may be unavailable. The package size may have changed. The discount may require a loyalty card. The cheaper shop may charge more for delivery. A requested product may exist at Selver Centrumi but not at Selver Männimäe. The agent may replace oat milk with dairy unless somebody has carefully explained that this is not an acceptable substitution.

Viljandi currently has three substantial supermarket options on Wolt: Rimi hyper Uku Keskus, Selver Centrumi and Selver Männimäe. This is enough choice to make comparison meaningful, but not enough to support the fantasy that every product is always available somewhere.

That limitation is what makes it interesting.

The agent cannot simply invent the perfect basket. It has to negotiate with the actual shops, actual inventory, delivery costs, package sizes and compromises of a relatively small place.

The grocery agent already exists

The idea of asking an AI to build a grocery basket is not new.

Instacart's Cart Assistant can turn a conversation, recipe or photograph of a shopping list into a personalised cart based on live inventory at a nearby shop. Instacart is also offering the system to retailers that want to place the assistant inside their own digital storefronts.

Jow begins with meals rather than products. It proposes recipes based on the household and its preferences, searches a connected grocer's current inventory, fills the basket with the necessary ingredients and passes the result into the retailer's checkout or completes the order through Jow where that integration exists.

Carrefour launched Hopla to help customers compose baskets according to a budget, dietary restrictions and menu ideas. The assistant connects the conversation to products available through Carrefour's ecommerce system.

These systems are usually presented as reductions in effort. Instead of searching for ten products, the customer describes a desired outcome. Instead of opening multiple categories, comparing package sizes and remembering what is already in the kitchen, the customer gives the system a request and receives a finished basket.

This is useful, but it is not the most important change.

The more significant change is that shopping stops being a sequence of visible decisions and becomes a policy.

A person does not need to specify every product. They specify the conditions under which a product may be selected:

Spend no more than €60. Prefer products made in Estonia. Avoid palm oil. Do not buy meat. Choose recyclable packaging when the price difference is small. Never substitute oat milk with dairy. Ask before selecting anything that costs more than 20 percent above its usual price.

The shopping list begins to resemble a small constitution.

It defines what the agent is permitted to do, what it should value and where its authority ends.

The supermarket has always designed the decision

This does not mean that shopping was previously neutral. Supermarkets have always designed what becomes visible.

Products are positioned at eye level. Discounts are presented against reference prices. Familiar brands purchase attention. Loyalty programmes change the price depending on who is standing in front of the shelf. Private-label products sit beside the brands they imitate. The route through the shop is arranged so that milk, bread and other ordinary necessities pull the customer past hundreds of other products.

The online supermarket continues the same work through search ranking, recommendations, sponsored placement, category structure and personalised offers. The interface looks like a catalogue, but it is also an argument about what should be bought.

A shopping agent appears to remove this interface. The customer no longer has to walk through the shop or scroll through its categories. They can ask for three inexpensive dinners and receive a basket.

But removing the visible shelf does not remove the ranking system.

It makes the ranking system harder to see.

The agent still has to decide whether inexpensive means the lowest immediate price, the lowest price per kilogram or the lowest total after discounts and delivery. It must decide whether to use a familiar brand, a private-label alternative or the product with the best reviews. It must decide how much inconvenience is acceptable when splitting the basket between shops. It must decide whether a sustainability claim is trustworthy or merely printed in green on the package.

Each of these decisions can be made on behalf of the customer.

They can also be made on behalf of the supermarket, delivery platform, advertiser or company operating the agent.

That makes the central question surprisingly old:

Who is the salesperson working for?

An agent inside a shop is still part of the shop

Instacart's assistant works inside Instacart. Carrefour's agent works inside Carrefour. These systems may genuinely help their users, but they are not outside observers searching the whole market without commercial interests.

A retailer-controlled agent is unlikely to tell the customer that the best option is to leave the retailer.

It may optimise for the customer's budget, but only among the products and shops available through its platform. It may suggest a cheaper meal while still preferring products with higher margins. It may include sponsored items, prioritise private-label products or recommend substitutions that make the order easier to fulfil. Even when no explicit manipulation exists, the boundaries of the system already shape the answer.

This is not necessarily malicious.

A supermarket has better inventory data for its own shops. A delivery platform knows which items are likely to be found by a picker and which shops can deliver within thirty minutes. Keeping the entire basket in one shop may reduce fees, emissions and the chance of missing products. Commercial alignment and customer usefulness can overlap.

They do not always overlap.

A customer may want the cheapest basket across Rimi and Selver. Wolt benefits when the order remains easy to fulfil. Each supermarket benefits when the entire basket stays inside its own catalogue. A local producer may have the best product but no structured inventory feed. A sustainable option may cost more, produce less margin or require a second delivery.

The agent has to resolve these conflicts somewhere.

Most current interfaces conceal that resolution behind a friendly conversational answer.

The user asks, What should I buy?

The system responds as though it discovered the basket rather than constructed it.

An independent agent would control demand

An agent comparing Rimi, Selver, Coop and independent shops would have a different position. It would sit between the customer and the retailers, deciding where demand goes.

That makes it useful to the customer and potentially threatening to everyone else.

The agent could observe that a basket costs €42 at one shop and €39 at another, but that the second shop lacks two products and has a higher delivery charge. It could calculate that dividing the order saves €4 in product costs but adds €5 in delivery. It could notice that the local alternative has less packaging but requires pickup. It could remember that the customer repeatedly rejects one substitution and stop proposing it.

This would be more than product recommendation.

It would be procurement software for an individual household.

Large companies already use procurement systems to define approved vendors, spending limits, preferred products and authorisation thresholds. The strange thing about agentic shopping is that ordinary people may begin using similar structures for groceries.

The family shopping policy could specify maximum weekly spending, banned ingredients, dietary needs, preferred countries of origin, acceptable delivery windows, minimum sustainability scores and the situations in which human approval is required.

The agent would not simply know the person.

It would operate under a contract with them.

Google's Agent Payments Protocol makes this direction explicit. Its model allows users to define products, brands and spending boundaries in advance, while producing a verifiable link between the user's intent, the agent's action and the resulting payment. Google is also developing a Universal Cart intended to coordinate shopping across merchants and services rather than belonging to one shop.

This is described as payment infrastructure.

It is also interaction design.

Someone still has to help a person express what buy on my behalf actually means.

Values become settings

Green Filter began from a question about sustainable consumption. How might someone understand the environmental consequences of what they buy without researching every company and product themselves?

A grocery agent appears to offer an answer. Instead of showing sustainability information beside every product and hoping that the customer reads it, the system could apply those preferences automatically.

Prefer local production. Avoid excessive packaging. Choose certified products. Reduce food waste. Reject companies that fail a particular standard. Spend slightly more when the environmental improvement is substantial, but not when it is mostly marketing.

The difficulty is that human values do not arrive as clean settings.

Prefer local can mean Estonia, Viljandi County or a producer within driving distance. A local greenhouse tomato may require more energy than an imported seasonal tomato. A larger plastic package can create less material per kilogram than several smaller paper packages. Organic certification may matter more for one product category than another. The sustainable option may be unavailable, unaffordable or likely to spoil before it is used.

The agent cannot apply values without interpreting them.

This is why I am increasingly suspicious of interfaces that present preferences as a few neat sliders. Price on one side, sustainability on the other. Move the control until the system understands who you are.

It does not understand.

It has been given a rule for resolving one simplified conflict.

A more honest agent would have to show uncertainty. It might explain that the locally produced item has better traceability but more packaging. It might say that the environmental difference is too uncertain to justify the higher price. It might ask whether the user would rather split the order or accept the second-best product from the same shop.

The explanation is not an accessory added after the decision.

It is part of the decision.

Products will have to become legible to machines

When agents become meaningful shoppers, products gain a second audience.

The first audience is the person who will eat, wear or use the product. The second is the software deciding whether that person will ever see it.

That software will need structured information: ingredients, allergens, certifications, packaging material, place of production, nutritional values, current price, historical price, stock availability and evidence behind environmental claims.

A product may look sustainable to a person because it uses brown cardboard, illustrations of leaves and a story about nature. An agent may ask for the certification identifier, packaging weight and verified place of manufacture. If those fields do not exist, the product may be impossible to evaluate.

This could improve commerce by forcing vague claims to become testable.

It could also produce a new industry devoted to manipulating agents.

Search engine optimisation taught companies to write for ranking systems. Social media taught them to create content for recommendation algorithms. Agentic commerce will encourage companies to make products legible and attractive to shopping models.

There will be structured metadata, preferred integrations, agent-readable promotions and probably a new form of sponsored recommendation. Brands will ask not only how to persuade a person, but how to become eligible under that person's shopping policy.

The supermarket shelf will not disappear.

It will become an API response that most customers never inspect.

Viljandi is not too small for this

It would be easy to treat Viljandi as an inconvenient place to test a grocery agent. The market is small. The available shops are limited. Retailers do not expose convenient public checkout APIs. Independent shops may manage products through spreadsheets or systems never intended for external agents.

But a large American delivery platform can hide mistakes inside abundance. If one product is unavailable, there may be twenty substitutes. If a shop does not participate, another one does. A fluent interface can continue producing plausible answers.

Viljandi gives the agent fewer places to hide.

There are currently two Selvers and one Rimi available through Wolt. Rimi also supports its own Mobile Drive collection process in Viljandi. The possible routes are concrete enough to compare, and limited enough that the comparison can be understood.

An early Green Filter agent would not need to autonomously complete every order. It could begin by constructing the basket, comparing the stores, explaining the compromises and handing the customer to the selected checkout.

This sounds less impressive than an autonomous wallet paying another autonomous agent.

It may be a more serious test of agency.

The system has to work with missing data, changing prices, incompatible shops, commercial incentives and preferences that cannot be reduced to one score. It has to know when not to act. It has to make its compromises visible without turning every grocery order into a research project.

I still do not know whether this should become a standalone app, a browser extension, a feature inside Green Filter or a service offered directly to a retailer. The technical connection to the shop is only one part of it. The harder problem is defining the relationship between the person, the agent and the commercial systems around them.

The first version probably begins with a very ordinary screen asking what the agent is allowed to do.

The user may think they are configuring a shopping assistant.

They are actually deciding which parts of everyday judgment can be delegated, which values can be translated into rules and which decisions must remain visible.

The question I started with was whether an agent could buy groceries in Viljandi.

I am now more interested in how I would know whose groceries it was buying.

Connected reading

AI authorship note

This essay began with Kris Haamer asking how the AI-agent patterns shown at ETHGlobal Lisbon could become a real grocery product in Viljandi, then testing the idea against Rimi, Selver, Wolt, Green Filter and existing shopping agents. AI supported the research into grocery assistants, Viljandi delivery options, agent payment infrastructure, drafting, editing, metadata and the publishing workflow. Kris supplied the Green Filter context, the Viljandi use case, the focus on independent agents and the final publication decision.

Help improve this website?

Optional Google Analytics and Microsoft Clarity measure content performance and usability. They load only if you allow them. Form values, email addresses, and chat messages are never included in analytics events.