microsoft / microsoft/semantic-kernel

Feature Request: Native Token Metering & Bounded Overshoot (x402 Protocol)

Open
#14,302 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
28.6k
Forks
4.8k
Avg merge
14h 13m
Merged PRs (30d)
18

Description

Context

As enterprise adoption of this framework accelerates, developers are increasingly hitting the "Margin Leak" problem: autonomous agents entering loops and aggressively polling paid LLM resources without proactive financial guardrails.

Currently, developers must build bespoke token-counting wrappers around the LLM calls. If a loop occurs, the API bill skyrockets before the framework can halt it.

Proposal: Adopt the x402 Protocol

We recently authored V2 of the x402 Native Token Metering Protocol upstream in the core modelcontextprotocol repository (Issue #3229).

We propose adding native support for x402 token metering and Bounded Overshoot directly into the framework's routing layer.

How it works (Bounded Overshoot)

Instead of pre-flight token math (which leads to false refusals), the framework passes requests through a meter. If the budget is exceeded, the request returns a standardized -4020 Payment Required error, and the agent safely halts.

Visual Demonstration:

🔥 Margin Leak Simulator Running...

=============================================
🚨 SCENARIO 1: UNPROTECTED AGENT (Status Quo)
=============================================
[Unprotected] Call 1 | Cost: $0.05 | Agent continues looping blindly...
[Unprotected] Call 5 | Cost: $0.25 | Agent continues looping blindly...
[Unprotected] Call 10| Cost: $0.50 | Agent continues looping blindly...
❌ DISASTER: Agent burned $0.50 and is still looping!

=============================================
🛡️ SCENARIO 2: PROTECTED AGENT (x402 Protocol)
=============================================
[Protected] Call 1 | Cost: $0.05 | LLM Call Success.
[Protected] Call 2 | Cost: $0.10 | LLM Call Success.
[Protected] Call 3 | Cost: $0.15 | LLM Call Success.
[Protected] Call 4 | Cost: $0.20 | LLM Call Success.
[x402 Firewall] Call 5 INTERCEPTED! HTTP 402 Payment Required.
✅ SUCCESS: Agent safely halted before catastrophic margin leak.
--> Remaining Budget: $0.00
Compliance (HTTP 451)

Enterprise environments also require strict KYC/Sanctions checks. The x402 spec natively supports returning HTTP 451 (Unavailable For Legal Reasons) if a destination wallet or tool is flagged, preventing the agent from transacting with sanctioned entities.

Reference Implementation

Our team maintains the @neuforge/pay-js SDK which handles the Stripe/Fiat bridging for this exact protocol. We would love to collaborate on submitting a PR to integrate this standard routing logic natively here.

Would the maintainers be open to standardizing this guardrail?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or concrete entry points are named. Start by reading the framework's routing layer, upstream modelcontextprotocol issue #3229, and the @neuforge/pay-js reference SDK; done would require an agreed native x402 integration scope, bounded-overshoot behavior, and compliance handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, javascript
Domain
backend-api-design, payments, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.