cd /news/ai-agents/solvent-publishing-guide Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-31908] src=github.com β†— pub= topic=ai-agents verified=true sentiment=↑ positive

Solvent Publishing Guide

A new open-source AI agent called SOLVENT operates as a self-funding business, selling research briefs via Stripe and using its own revenue to pay for compute. It profit-gates every job before starting, declining unprofitable work, and enforces spend policies through a NemoClaw-style sandbox. The agent runs offline-first with stubs or live with API keys, and a demo processes four analyst jobs in about 30 seconds.

read6 min views2 publishedJun 18, 2026

An AI agent that runs as a profitable, self-funding business.

It sells research briefs. It collects payment on Stripe. It spends its own revenue to provision the compute it needs. And it refuses any job that doesn't clear a margin.

Most agents can spend money. Almost none can run as a business.

SOLVENT closes the full loop:

  Client pays Stripe β†’ Agent earns revenue β†’ Agent fulfils the work
  β†’ Agent pays its own vendor bills β†’ P&L booked β†’ balance sheet grows

Every job is profit-gated before it starts. Unprofitable work is declined without touching Stripe. Vendor payments are screened by a NemoClaw-style policy sandbox. The agent literally cannot spend more than it earns.

Zero dependencies. No API keys. Works right now.

git clone https://github.com/ianalloway/solvent-agent.git
cd solvent-agent
python3 run_demo.py

The agent will run a full batch of 4 analyst jobs β€” complete with margin gating, Stripe payment simulation, NVIDIA Nemotron fulfillment, guardrail screening, and live P&L β€” in about 30 seconds.

First run: A short onboarding wizard asks you to choose a model, interaction mode, and whether to enable Stripe test mode. Preferences are saved to.solvent/config.json

and never committed.

After a run, open the live treasury dashboard:

open treasury_dashboard.html   # macOS

A typical batch session:

Metric Value
Revenue $223.00
Operating spend $13.35
Net profit
$209.65
Margin 94%
Jobs declined 1 (below margin floor)
 inbound job
     β”‚
     β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   margin < floor?  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  MARGIN GATEβ”‚ ─────────────────▢ β”‚  DECLINE  β”‚
 β”‚  (pricing)  β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ accept
       β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   EARN
 β”‚   STRIPE    β”‚ ── Payment Link β†’ poll/webhook until paid ──▢ + revenue
 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    (records cs_... + pi_... on ledger)
       β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   FULFIL
 β”‚  NEMOTRON   β”‚ ── Llama-3.1-Nemotron-Ultra produces the brief ──▢ resource usage
 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   SPEND (every payment screened first)
 β”‚ GUARDRAILS  β”‚ ── NemoClaw policy: allowlist Β· caps Β· reserve Β· ROI
 β”‚   β†’ STRIPE  β”‚ ── Issuing virtual card (test) or simulated spend ──▢ βˆ’ expense
 β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό
   BOOK P&L  ──▢ treasury updated Β· dashboard refreshed

Revenue is always collected before cost is incurred, and no payment can violate policy. The business is safe by construction and profitable by rule.

Layer Technology File
Analyst / reasoning
NVIDIA Nemotron (Llama-3.1-Nemotron-Ultra) solvent/nemotron.py
Spend safety
NVIDIA NemoClaw-style policy sandbox solvent/guardrails.py
Earn
Stripe Payment Links + Checkout Session polling solvent/stripe_client.py
Spend
Stripe Issuing virtual cards (test mode) solvent/stripe_client.py
Orchestration
Hermes / Nous tool-calling agent loop solvent/agent.py
Memory
SQLite treasury + pricing ledger solvent/treasury.py Β· solvent/pricing.py

Key design choices:

Structural profitabilityβ€”pricing.py

computes unit cost before quoting. If margin < floor, the job never reaches Stripe.Spend policyβ€”guardrails.py

enforces vendor allowlist, per-transaction cap, rolling 24h budget, minimum cash reserve, and no-negative-ROI rule.Offline-firstβ€” without API keys the demo runs on deterministic stubs. AddNVIDIA_API_KEY

+STRIPE_API_KEY=sk_test_...

to unlock live inference and real Payment Links.Audit trailβ€” everycs_...

checkout session ID andpi_...

PaymentIntent ID is recorded on the ledger before fulfilment begins.

python3 run_demo.py

4 pre-loaded jobs. ~30 seconds. Shows margin gating, Stripe earn/spend, Nemotron fulfillment, and guardrails in action.

python3 run_demo.py --interactive

Type a research topic and client budget at the prompt. The agent quotes, pays, fulfils, and books P&L for each one in real time. Keep going until you quit.

python3 run_demo.py --seed 500        # start with $500 instead of $100
python3 run_demo.py --keep-balance    # resume existing treasury balance

In interactive mode, type /fund 200

at the prompt to deposit $200 into the live treasury without restarting.

from solvent.agent import Solvent

agent = Solvent(seed_cents=10_000)          # reset treasury, seed $100
agent.handle_job(SAMPLE_JOBS[0])            # process one job
snap = agent.run(SAMPLE_JOBS[1:])           # process a list; returns snapshot

print(snap["balance_cents"], snap["margin_pct"])
python3 demo_guardrails.py

Shows five spend attempts and which ones the NemoClaw-style policy blocks β€” without starting the agent or touching Stripe.

To use live Nemotron inference and real Stripe test-mode payment links:

pip install -r requirements.txt

export NVIDIA_API_KEY=nvapi-...        # from build.nvidia.com
export STRIPE_API_KEY=sk_test_...      # Stripe test mode only (live keys refused)

python3 run_demo.py

With both keys set:

  • Briefs are written by NVIDIA Nemotron(Llama-3.1-Nemotron-Ultra). - Each job creates a real Stripe Payment Link. Pay with test card4242 4242 4242 4242

. - SOLVENT polls the Checkout Session (cs_...

) untilpayment_status == paid

before fulfilling β€” no instant confirm. - Optional: set STRIPE_WEBHOOK_SECRET

and forwardcheckout.session.completed

events viaStripeClient.process_webhook()

. - Optional: enable Stripe Issuing on your test account to provision capped single-use virtual debit cards for each vendor payment.

Variable Purpose
NVIDIA_API_KEY
Live Nemotron inference (nvapi-... )
STRIPE_API_KEY
Stripe test key (sk_test_... )
STRIPE_WEBHOOK_SECRET
Optional webhook verification
STRIPE_PAYMENT_POLL_TIMEOUT
Seconds to wait for payment (default 120 )
STRIPE_PAYMENT_POLL_INTERVAL
Poll interval in seconds (default 2 )
SOLVENT_FORCE_STRIPE_SIMULATE
Force offline simulate mode even with a key

Product/Price objects are cached in .solvent/stripe_catalog.json

so repeated runs reuse a single SOLVENT Research Brief product instead of cluttering your Stripe dashboard.

pip install pytest
python3 -m pytest tests/ -v

Unit tests cover: pricing & margin gate Β· guardrail policy Β· treasury ledger Β· Stripe client (simulate + test mode) Β· config/onboarding.

solvent/
  agent.py         the orchestrator (earn β†’ fulfil β†’ spend β†’ book)
  treasury.py      SQLite ledger / balance sheet
  pricing.py       the margin gate
  guardrails.py    NemoClaw-style spend policy
  stripe_client.py two-sided Stripe layer (earn + spend)
  nemotron.py      NVIDIA Nemotron client (+ offline stub)
  service.py       the product: an on-demand research brief
  jobs.py          sample inbound work
  dashboard.py     renders the treasury to HTML + JSON
  config.py        onboarding wizard and config persistence
run_demo.py        the full business loop (CLI entry point)
demo_guardrails.py the safety story (standalone)
tests/             pytest suite
docs/              screenshots and supporting assets

Hermes Agent Accelerated Business Hackathon β€” NVIDIA Γ— Stripe Γ— Nous Research

The agent was designed to demonstrate:

  • An agent that is economically self-awareβ€” it has a treasury, prices against its own costs, and gates every action on projected profit - A complete two-sided Stripe integrationβ€” earns via Payment Links, spends via Issuing virtual cards Provable spend safetyβ€” a NemoClaw-style policy sandbox that makes "give an agent a payment credential" a reasonable thing to do** Live inference with NVIDIA Nemotron**β€” the offline stub means the demo always works, even without API keys

Issues, PRs, and ideas are very welcome. Some good starting points:

  • Add more sample research topics in solvent/jobs.py

  • Improve the Nemotron prompt template in solvent/service.py

  • Add a new guardrail policy to solvent/guardrails.py

  • Extend the dashboard with charts or new metrics in solvent/dashboard.py

If SOLVENT gave you ideas, give it a ⭐

── more in #ai-agents 4 stories Β· sorted by recency
── more on @solvent 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/solvent-publishing-g…] indexed:0 read:6min 2026-06-18 Β· β€”