As agents start using paid APIs, browsers, and external services, the control problem becomes very real.Most teams are currently stuck between two bad options:Give the agent direct access to payment methods and hope it doesn’t do something expensive
Require human approval for every paid action and lose most of the autonomy benefit
Writing custom guardrails in code helps at first, but they’re difficult to audit and tend to break as prompts and agent behavior evolve.What seems to be missing is proper infrastructure at the financial layer — things like per-agent balances, hard spending limits that the model cannot override, clear audit trails, and policy enforcement that lives outside the agent itself.How are other people solving this in practice?We built an early version of this kind of infrastructure and would really value feedback from developers who are actually shipping agentic products: https://valta.co
One thing I'd be careful with:
The challenge may not be controlling what an agent is allowed to spend.
It may be deciding what level of autonomy should exist before spending becomes possible at all.
Those sound similar, but they can lead to very different product decisions.
Both matter but they operate at different layers.
Autonomy level is a product decision the developer makes before deployment — how much trust do you give this agent, what categories of actions is it allowed to take. That's policy design.
Spending control is runtime infrastructure — once you've decided the agent is allowed to spend, something still needs to enforce the boundary reliably regardless of what the model decides to do in the moment.
The failure mode we keep seeing isn't teams that gave agents too much autonomy by mistake. It's teams that made the right autonomy decision, deployed carefully, and still got a $47K bill because there was no hard enforcement layer underneath the policy. The agent was supposed to spend — just not that much.
So I'd say: you're right that they lead to different product decisions. Valta is deliberately focused on the enforcement layer, not the autonomy decision. The autonomy question is upstream and mostly belongs in the developer's architecture. What happens after that decision is made is where infrastructure needs to exist.
That's fair.
The reason I stopped short is that I don't think the interesting part is the enforcement layer itself.
I think it's the decision sitting underneath how that layer gets interpreted.
That's one of those things that can look settled long before it actually is.
I wouldn't try to unpack that properly in a thread.
If you'd like the tighter version, drop your email and I'll put it together properly.
Hi Debo, Solid framing of the problem. One thing that stands out is the claim of “hard spending limits that the model cannot override” with policy enforcement living outside the agent. How do you actually enforce this when the agent can generate arbitrary code, use alternative tool-calling paths, proxy through other services, or interact with APIs that have their own billing layers (e.g. certain browser tools, data providers, or self-hosted endpoints)? What’s the concrete mechanism that stops a sufficiently capable agent from finding an indirect route around the per-agent balance and limits, even if it can’t directly touch the payment method? Would love to understand the threat model and enforcement guarantees here.
Good challenge. The honest answer is: Valta enforces at the framework integration layer, not at the network level. When you wrap your LangChain or CrewAI agent with Valta, every tool call routes through the enforcement gate before execution. The agent cannot call a tool without going through that check — because the tool itself is wrapped.
What this doesn't cover: if the agent generates and executes arbitrary code that makes raw HTTP calls outside the framework, or uses a tool you haven't wrapped, Valta doesn't see that. No enforcement layer short of a network-level firewall catches everything a sufficiently capable agent could do.
The threat model is: developers who want a reliable, auditable spending gate for the tools they control. It's not a jail for adversarial agents — it's infrastructure for teams building agents they trust but want hard budget guarantees on.
The analogy is a corporate expense card with limits. It stops accidental overspending by well-intentioned employees. It doesn't stop a determined bad actor. Most real-world agent deployments need the former, not the latter.
Thanks for the honest breakdown — really appreciate the clarity on the actual scope.That framework-wrapping approach makes a lot of sense for the “trusted but budgeted” use case you described. One thing I’m still curious about: for teams that do let their agents generate and execute arbitrary code (or use custom/unwrapped tools), what’s the recommended path? Do most people just accept the gap and add separate monitoring, or is there a practical way to combine Valta with something else to reduce the risk of raw HTTP bypasses?
Most teams doing arbitrary code execution pair enforcement with network-level egress controls — something like restricting outbound connections to a whitelist of approved endpoints at the infrastructure layer. Valta handles the budget gate for framework calls, the network policy handles everything else.
Practically: wrap your known tools with Valta, run the agent in an environment where raw outbound HTTP is restricted to approved domains only (this can be done with something like a proxy or firewall rule in your deployment setup). The two layers together cover most real-world exposure without needing to solve the full adversarial agent problem.
The honest reality is most teams doing serious agent deployments aren't letting agents execute fully arbitrary code in prod anyway — the risk profile is too high independent of spend. If you're at the point where your agent is generating and running raw HTTP calls dynamically, spend control is probably your second problem, not your first.