DEV Community

Tom Tokita
Tom Tokita

Posted on • Originally published at tokita.online

I Opened DevTools on an "AI-Native" Platform. It Was a Dropdown.

An LLM wrapper can hide in plain sight. I sat across from an AI startup founder a few weeks ago. He was pitching his platform. "AI-native workspace." "Agentic AI." Over 40 built-in agents. He leaned in and asked if I really understood what his system could do.

I went home and signed up.

Then I opened DevTools.

What I found in the network tab

The platform had an AI chat feature. I asked it a question. While it was answering, I watched the network requests in my browser.

One request stood out. The platform's own frontend was sending my query to its backend with two extra fields:

"model": "google/gemini-3.1-pro-preview"
"provider": "openrouter"
Enter fullscreen mode Exit fullscreen mode

That's OpenRouter's model identifier format. The platform was routing my prompt through OpenRouter to Google's Gemini model. The same Gemini you can access directly through Google AI Studio for free, or through the API for a few dollars per million tokens.

The platform charges tens of dollars per user, per month.

The denial

I asked the AI agent directly: "Are you Gemini?"

It responded: "I am not Gemini or affiliated with any other external AI provider."

The system prompt instructs the model to deny its own identity. Meanwhile, the HTTP request payload contains the model name in plaintext. The network layer doesn't lie, even when the system prompt does.

"Not a wrapper" on the same page as "switch your model"

Here's where it gets interesting. This platform's marketing page includes the phrase: "Intelligence baked into the Core. Not a wrapper."

Three sections below that, on the same page: "Multi-Model Support: Switch your agent's brain between GPT-4o, Claude 3.5, or Gemini Pro."

Read that again. If your AI's "brain" can be swapped between three different providers with a dropdown, that is the definition of a wrapper. Proprietary AI doesn't have a "switch model" button. That's like a restaurant claiming they cook everything from scratch while the menu says "choose your meal kit provider."

What the "agents" actually are

The platform advertises "40+ built-in AI agents." I opened one to see the configuration.

The entire agent profile consisted of three fields: an icon, a name ("Product Manager"), and a 100-character description ("Leads product development from conception to launch, balancing user needs with business goals.").

No tools attached, no retrieval pipeline, no reasoning chain. The API response confirmed it: tool_calls was empty, knowledge_base was empty, reasoning_steps was empty, references was empty.

These aren't agents. They're prompt templates with a role label. The model receives your question plus a one-liner about who it's supposed to be, and autocompletes. Every "agent" runs on the same model through the same passthrough. The only difference is the 100-character system instruction.

Compare that to what an actual agentic system requires: mechanical enforcement gates, model pinning, persistent memory, session continuity, tool orchestration, and the ability to refuse dangerous actions before they happen. That's infrastructure, not a dropdown.

How to tell if your AI tool is a wrapper

You don't need to reverse-engineer anything. Five checks, five minutes.

Check What to look for Wrapper signal
Model selector Can you switch between GPT, Claude, Gemini, or others? If yes, the AI is a routing layer, not proprietary.
BYOK option Is there a "Bring Your Own API Key" field in settings? If yes, the platform is forwarding your prompts to a third-party provider.
Developer docs Does the platform have a public API? Check /developers, /api, /docs. If all return 404, there's no programmatic access because there's nothing proprietary to expose.
Network tab Open DevTools (F12), send a message, check the request payload. Look for model identifiers like gpt-4o, claude-3.5-sonnet, gemini-pro, or provider fields like openrouter.
Ask the AI Ask "What model are you?" then ask "Are you [specific model]?" If it deflects the first question and denies the second, a system prompt is hiding the identity.

If three or more of these checks light up, you're paying a subscription for a UI layer on top of an API you could call directly.

Why this matters beyond price

The cost arbitrage is obvious. But there are two less visible problems.

Your data takes an extra hop. When you type into one of these platforms, your prompt travels through at least three parties: the wrapper, the routing service (like OpenRouter), and the model provider (like Google). Each party has its own data retention policy. OpenRouter doesn't store prompts by default, but metadata is always logged, and third-party provider policies vary. Most users never audit past the wrapper's own privacy page.

Token costs are uncontrolled. Without proper context engineering, every prompt goes raw to whichever model the dropdown points at. No caching, no routing intelligence, no cost gates. The user picks the most expensive model because it's at the top of the list, and the platform has no incentive to optimize because they're not paying the inference bill. You are, through your subscription, subsidizing unoptimized API calls.

Wrappers aren't the problem. Dishonesty is.

I want to be clear: there's nothing wrong with building on top of third-party models. I do it every day. My own research tooling routes queries through Gemini. My daily coding environment is a wrapper around Claude. I've adapted an open-source model (Gemma) for private, on-device mobile inference because the use case demanded it. Wrappers, when properly configured with cost controls, prompt engineering, and data governance, are a legitimate architecture.

The problem is calling it "proprietary" when you're not. The problem is marketing "AI-native intelligence baked into the core" when the core is someone else's API behind a dropdown. The problem is instructing your model to deny its own identity when a customer asks.

If you're building a great UI on top of Gemini and charging for the convenience, say that. Plenty of successful products do exactly that, honestly. But when you tell a customer your AI is "robust" and "not a wrapper" while your frontend sends "provider": "openrouter" in every request payload, that's not marketing. That's misrepresentation.

The pattern is accelerating

I wrote about how to evaluate AI tools beyond the marketing back in March. At the time, the wrapper problem was mostly startups padding their pitch decks. It's worse now. These platforms have real revenue, real customers, and real marketing budgets. They're profitable because the per-token cost of routing API calls is fractions of a cent while the per-seat subscription is dollars.

This isn't going away. If anything, it's going to intensify as model APIs get cheaper and easier to integrate. The barrier to building a "40+ AI agent platform" is a weekend, an OpenRouter account, and a landing page.

The fix isn't regulation or outrage. It's literacy. Open DevTools. Check the network tab. Read the request payload. The information is right there, in plaintext, every time you send a message.

Your AI tool's identity isn't a secret. It's just one F12 away.

Top comments (0)