Workspace IndexDev Notes › The harness, not the model — governing agents instead of building them

#103PoC

The harness, not the model — governing agents instead of building them

Once a standard stops being contested, an operations layer grows on top of it. Every card here about agents is about making one work; this one is about what happens when one misbehaves — and one company is already running that architecture against real capital, with the wrapper published as open source.

Ten minutes for the infrastructure half: run LiteLLM in proxy mode from its README and stop at the point where cost tracking switches on — that single moment is the whole demonstration. Then the reading half: open github.com/Senpi-ai/senpi-skills and separate, line by line, what the model decides from what the deterministic layer refuses. Optional and more valuable than either: write one line on what would become visible if this project's own agent tool calls ran behind a gateway for a week. Sources to confirm, because the figures are vendor or secondary: the MCP npm SDK download count, TrueFoundry's published latency and throughput numbers, senpi.ai and resources.senpi.ai/learn.

Why

A standard winning is not the end of a story, it is the start of a different one. While the protocol was contested, the interesting work was the protocol. Once it stopped being contested — the MCP SDK is reported at roughly 195.9 million monthly npm downloads, ahead of every other tracked AI package — the interesting work moved one layer up, to whatever sits between an agent and the tools it calls. That layer is where identity, spend and access controls live, and it did not exist a year ago because nothing was standard enough to put a gateway in front of.

This catalogue has three cards about producing agents and none about governing them. mcp-three-sides covers building on the spec, agent is an autonomous payment agent, and this card used to be two: the infrastructure argument, and a live company running the same architecture. They belong together, because the design claim and its working counterexample are more useful in one place than in two.

Senpi is that working case, and it states the thesis better than an infrastructure vendor does. It describes its Samurai model as "a harness — a disciplined stack that wraps a market-tuned AI model in deterministic execution and risk machinery, so an autonomous agent can trade real capital without hallucinating a position or forgetting a stop." That is the same conclusion this catalogue reached twice from the other direction: agentic-intent-veto argues the bound must be enforced outside the agent, and this repo's own plan settles D5 the same way — deterministic decision for the demo, because an LLM in the decision path makes the safety claim harder to state rather than easier. A design argument with a live confirmation available in source form is worth more than another design argument.

The empty cell is specific and close to home. This report is itself produced by an agent, with real tool calls and a real bill, and there is currently no per-agent identity, no spend ceiling and no record of which tool consumed what. Those are exactly the three things an agent gateway provides. The question worth asking is not which vendor to pick — it is what the ledger would say if one were switched on for a week.

And the sharpest detail in the whole area is a unit problem. Senpi's take-profit and stop-loss are margin-relative, not price-relative, so at 10x a stated 10% take-profit fires on a 1% price move. The number is not wrong and the unit is not the one most people read — the same failure mode as a spend cap that constrains the amount but not the purchase. It is trivially measurable: sweep leverage, plot stated percentage against realised price move, and the gap is the answer.

How it works

The infrastructure layer

Piece What it does Where it fits
LiteLLM Rust-core gateway putting 100+ LLM APIs behind one interface, with cost tracking and load balancing Makes a model swap a config change rather than a code change
TrueFoundry Split into an MCP gateway governing every tool connection and an agent gateway carrying per-agent identity and spend limits The governance half; published at roughly 3-4ms added latency, 350+ RPS on 1 vCPU
katanemo/plano AI-native proxy and data plane with smart LLM routing The routing half
vLLM High-throughput serving on PagedAttention The default once serving moves in-house
Context compression Separating into its own infrastructure layer Emerging, because agents have hit real token-cost ceilings

Four things to check in senpi-skills, in the order that makes each cheap

  1. The enforced set. Senpi states that margin, notional and leverage limits reject any signal that would breach them, and that position size scales off live account margin and the signal's own score rather than a fixed lot. A rejecting bound is exactly the shape agentic-intent-veto wanted — so find it in source and see whether rejection happens before or after the model has already committed to a size.
  2. The unit problem. TP/SL are margin-relative. Sweep leverage, plot stated percentage against realised price move. The gap is the finding.
  3. Isolation. Each strategy gets its own sub-wallet, cross-margined internally so positions can hedge, isolated externally. Testable rather than a slogan: does a liquidation inside strategy A reach strategy B's margin, and is the isolation enforced by separate venue accounts or only by the application?
  4. The custody tension, named honestly. Keys are sharded across secure enclaves with SOC 2 and three external audits, and users can export keys at any time. Both are good properties and they pull against each other, because exportable means reconstructible. The question is not whether it is safe but who can reconstruct, under what quorum, and what an export proves about who else held a share — the same question third-party-blast-radius asks of any threshold scheme.

The measurement, and it is one week long

Put this project's agent tool calls behind a gateway for a week and read three numbers off the ledger:

Number Currently knowable? Why it changes decisions
Cost per report section No Says which sections are worth their price
Which tool dominates the bill No Optimisation target, and usually a surprise
Share of spend that is context rather than output No Decides whether context compression matters here or is someone else's problem

The unglamorous reason this belongs on the list

A gateway is about what happens when an agent misbehaves — a loop that calls a paid tool a thousand times, a credential reachable by an agent that should not reach it. Those are operational failures rather than interesting ones, which is exactly why the layer exists and exactly why it gets added after the incident rather than before. Senpi's whole argument is that the harness is the product; the gateway is that argument applied to agents that are not trading.

The sentence an ad got right

A Zapier event ad seen 2026-08-28 opens with one line worth keeping: "Business teams are shipping AI faster than IT can review it." It is marketing, and it is also the demand for this layer stated plainly from the buyer's side. Two things follow from it.

The gap is structural rather than a discipline problem. Review capacity is a fixed number of people. Adoption is a rate, and a business team can raise that rate without asking anyone, because the tools are SaaS and the budget is a corporate card. A rate outruns a fixed capacity by default — which is why "slow the teams down" is not an available answer, and why an ad can safely promise not to.

Therefore the control cannot be a review. If approval cannot keep pace with adoption, the thing that governs has to be a runtime property rather than a checkpoint: a gateway every agent passes through whether or not anybody reviewed it, with the spend cap, the credential scope and the audit trail enforced there. That is this card's conclusion reached from the governance side instead of the operations side, and it sharpens into one rule — a checkpoint that scales with people loses to a rate; a chokepoint that scales with traffic does not.

← All Dev Notes · Workspace Index · Top ↑

모델이 아니라 하네스 — 에이전트를 만드는 대신 통치하기

표준을 둘러싼 다툼이 끝나면 그 위에 운영 계층이 자랍니다. 여기 에이전트 카드들은 전부 하나를 동작시키는 법이고, 이 카드는 하나가 오작동할 때 무슨 일이 벌어지는가입니다 — 그리고 어떤 회사는 이미 그 아키텍처를 실제 자본으로 운영 중이며, 감싸는 층을 오픈소스로 공개하고 있습니다.

인프라 절반은 10분: LiteLLM 을 README 대로 프록시 모드로 띄우고 비용 추적이 켜지는 지점에서 멈춥니다 — 그 한 순간이 시연 전부입니다. 읽는 절반: github.com/Senpi-ai/senpi-skills 를 열고 모델이 결정하는 것과 결정론적 층이 거부하는 것을 한 줄씩 갈라 적습니다. 선택 사항이지만 둘보다 값어치 있는 것: 이 저장소 자신의 에이전트 툴 호출을 일주일간 게이트웨이 뒤로 보내면 무엇이 보이게 되는지 한 줄 쓰기. 아래 수치는 벤더 또는 2차 출처이므로 확인 필요: MCP npm SDK 다운로드 수, TrueFoundry 가 발표한 지연·처리량 수치, senpi.ai · resources.senpi.ai/learn.

표준이 이기는 것은 이야기의 끝이 아니라 다른 이야기의 시작입니다. 프로토콜을 다투는 동안에는 흥미로운 작업이 프로토콜이었습니다. 다툼이 끝나자 — MCP SDK 는 월 약 1억 9,590만 npm 다운로드로 추적되는 모든 AI 패키지를 앞선다고 보고됩니다 — 흥미로운 작업이 한 층 위로, 에이전트와 그것이 부르는 툴 사이로 옮겨갔습니다. 그 층에 신원·지출·접근 통제가 살고, 1년 전에는 존재하지 않았습니다. 앞에 게이트웨이를 세울 만큼 표준적인 것이 없었기 때문입니다.

이 카탈로그에는 에이전트를 만드는 카드가 셋이고 통치하는 카드는 없었습니다. mcp-three-sides 는 스펙 위에서 만드는 법, agent 는 자율 결제 에이전트, 그리고 이 카드는 원래 둘이었습니다 — 인프라 논증같은 아키텍처를 실제로 굴리는 회사. 둘은 함께 있어야 합니다. 설계 주장과 그것의 작동하는 사례는 두 곳보다 한 곳에 있을 때 쓸모가 큽니다.

Senpi 가 그 작동 사례이고, 인프라 벤더보다 명제를 잘 말합니다. 자사 Samurai 모델을 이렇게 설명합니다 — "하네스, 즉 시장에 맞춰 튜닝된 AI 모델을 결정론적 실행·리스크 기계장치로 감싼 규율 있는 스택. 그래서 자율 에이전트가 포지션을 환각하거나 스톱을 잊지 않고 실제 자본을 굴릴 수 있다." 이 카탈로그가 반대 방향에서 두 번 도달한 결론과 같습니다agentic-intent-veto경계가 에이전트 바깥에서 강제되어야 한다고 주장하고, 이 저장소 자신의 계획도 D5 를 같은 방식으로 정했습니다: 데모는 결정론으로. LLM 이 결정 경로에 있으면 안전성 주장이 쉬워지는 게 아니라 말하기 어려워지기 때문입니다. 살아 있는 확증을 소스 형태로 확인할 수 있는 설계 주장은, 또 하나의 설계 주장보다 값어치가 큽니다.

빈칸은 구체적이고 남의 일이 아닙니다. 이 리포트 자체가 에이전트가 만들고, 실제 툴 호출과 실제 청구서가 있으며, 지금 에이전트별 신원도, 지출 상한도, 어느 툴이 얼마를 썼는지의 기록도 없습니다. 정확히 에이전트 게이트웨이가 주는 세 가지입니다. 물을 값이 있는 질문은 어느 벤더냐가 아니라, 일주일만 켜 두면 원장이 무엇을 말할까입니다.

그리고 이 영역에서 가장 날카로운 디테일은 단위 문제입니다. Senpi 의 익절·손절은 가격 대비가 아니라 증거금 대비입니다. 그래서 10배 레버리지에서 표시된 10% 익절이 가격 1% 움직임에 발동합니다. 숫자가 틀린 게 아니라, 단위가 대부분이 읽는 그 단위가 아닌 것입니다 — 금액은 제약하지만 구매는 제약하지 않는 지출 상한과 같은 실패 모드. 재는 것은 간단합니다: 레버리지를 훑으며 표시 퍼센트 대 실현 가격 움직임을 그리면, 그 간격이 답입니다.

동작 방식

인프라 계층

조각 하는 일 자리
LiteLLM 100개 이상 LLM API 를 한 인터페이스 뒤에 놓는 Rust 코어 게이트웨이. 비용 추적·로드 밸런싱 모델 교체를 코드 변경이 아니라 설정 변경으로
TrueFoundry MCP 게이트웨이(모든 툴 연결 통치) + 에이전트 게이트웨이(에이전트별 신원·지출 한도)로 분리 통치 절반. 지연 약 3~4ms 추가, 1 vCPU 에서 350+ RPS 로 발표
katanemo/plano 스마트 LLM 라우팅을 갖춘 AI 네이티브 프록시·데이터 플레인 라우팅 절반
vLLM PagedAttention 기반 고처리량 서빙 서빙을 내재화할 때의 기본값
컨텍스트 압축 독립된 인프라 계층으로 분리 중 에이전트가 실제 토큰 비용 천장에 부딪혔기 때문

senpi-skills 에서 확인할 넷, 싼 것부터

  1. 강제되는 집합. Senpi 는 증거금·명목금액·레버리지 한도가 이를 위반할 신호를 거부한다고 말하고, 포지션 크기가 고정 랏이 아니라 실시간 계좌 증거금과 신호 점수에 비례한다고 합니다. 거부하는 경계가 정확히 agentic-intent-veto 가 원한 모양입니다 — 소스에서 찾아 모델이 이미 사이즈를 정한 뒤인지 전인지 봅니다.
  2. 단위 문제. TP/SL 이 증거금 대비입니다. 레버리지를 훑으며 표시 퍼센트 대 실현 가격 움직임을 그립니다. 그 간격이 발견입니다.
  3. 격리. 전략마다 서브월렛을 갖고, 내부적으로는 교차증거금(포지션 간 헤지 가능), 외부적으로는 격리. 구호가 아니라 시험 가능합니다: 전략 A 안의 청산이 전략 B 의 증거금에 닿는가, 그리고 격리가 거래소의 별도 계정으로 강제되는가 아니면 애플리케이션 수준에서만인가?
  4. 수탁의 긴장, 정직하게 이름 붙이기. 키는 보안 엔클레이브에 샤딩되고 SOC 2 와 외부 감사 셋을 받았으며, 사용자는 언제든 키를 내보낼 수 있습니다. 둘 다 좋은 성질이고 서로를 당깁니다내보낼 수 있다는 것은 재구성 가능하다는 뜻이기 때문입니다. 질문은 안전한가가 아니라 누가, 어떤 정족수로 재구성할 수 있으며, 내보내기가 다른 누가 조각을 갖고 있었는지에 대해 무엇을 증명하는가입니다 — third-party-blast-radius 가 모든 임계값 방식에 던지는 같은 질문입니다.

측정, 일주일짜리

이 저장소의 에이전트 툴 호출을 일주일간 게이트웨이 뒤로 보내고 원장에서 숫자 셋을 읽습니다:

숫자 지금 알 수 있나? 왜 결정을 바꾸나
리포트 섹션당 비용 아니오 어느 섹션이 값을 하는지
청구서를 지배하는 툴 아니오 최적화 대상, 그리고 대개 의외
출력이 아니라 컨텍스트가 차지하는 비중 아니오 컨텍스트 압축이 여기 문제인지 남의 문제인지 결정

이것이 목록에 있어야 하는, 멋없는 이유

게이트웨이는 에이전트가 오작동할 때의 이야기입니다 — 유료 툴을 천 번 부르는 루프, 닿으면 안 되는 자격증명에 닿는 에이전트. 흥미로운 실패가 아니라 운영상의 실패이고, 정확히 그래서 이 계층이 존재하며 정확히 그래서 사고 이후에 추가됩니다. Senpi 의 논지 전체가 하네스가 곧 제품이라는 것이고, 게이트웨이는 그 논지를 트레이딩하지 않는 에이전트에 적용한 것입니다.

광고가 맞춘 한 문장

2026-08-28 에 본 Zapier 행사 광고는 챙겨 둘 만한 한 줄로 시작합니다 — "현업 팀이 IT 가 검토할 수 있는 속도보다 빠르게 AI 를 내보내고 있다." 마케팅이고, 동시에 이 계층에 대한 수요를 구매자 쪽에서 그대로 진술한 문장입니다. 두 가지가 따라옵니다.

간극은 기강 문제가 아니라 구조입니다. 검토 역량은 고정된 사람 수입니다. 도입은 속도(rate) 이고, 현업 팀은 누구에게 묻지 않고도 그 속도를 올릴 수 있습니다 — 도구는 SaaS 이고 예산은 법인카드니까요. 속도는 고정 역량을 기본값으로 앞지릅니다. 그래서 "팀을 늦춰라"는 선택지가 아니고, 광고가 늦추지 않겠다고 안전하게 약속할 수 있는 이유입니다.

따라서 통제는 검토일 수 없습니다. 승인이 도입 속도를 따라잡지 못한다면, 다스리는 것은 관문(checkpoint)이 아니라 런타임 속성이어야 합니다 — 누가 검토했든 안 했든 모든 에이전트가 지나가는 게이트웨이, 그리고 지출 한도·자격증명 범위·감사 기록이 거기서 강제되는 것. 이는 이 카드의 결론을 운영이 아니라 거버넌스 쪽에서 도달한 것이고, 한 문장으로 벼려집니다 — 사람 수에 비례하는 관문은 속도에 집니다. 트래픽에 비례하는 병목은 지지 않습니다.

← 전체 개발 노트 · 워크스페이스 인덱스 · 맨 위 ↑