TokenOps — скилл

Скилл встраивает в Python-агента лимит расходов на весь прогон: проверка перед каждым вызовом модели останавливает лишние траты.

  • 84 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Расширенный доступ

Почему такой уровень

  • Скилл правит код вызова модели в вашем проекте, а политики могут менять следующий запрос агента
  • Общий бюджет требует ключа панели управления с правами чтения и записи событий
Все причины и проверки

theagentplane/tokenops

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/tokenops

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл правит код вызова модели в вашем проекте, а политики могут менять следующий запрос агента
  • Общий бюджет требует ключа панели управления с правами чтения и записи событий

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

TokenOps ставит один бюджет на весь рабочий процесс агента, а не на отдельный запрос. Скилл `integrate-tokenops` открывает ассистент, и тот оборачивает вызов модели функцией `wrap_complete` внутри `tokenops_run`. Перед каждым обращением к модели проверяется, сколько прогон уже потратил. Когда лимит исчерпан, поднимается исключение `Halt`, а соседние процессы того же прогона получают отказ. В пакет входят десять готовых политик: бюджет по стоимости, проверка худшего случая до вызова, лимит шагов, лимит времени, обрезка вывода инструментов и уплотнение контекста. Политика способна остановить прогон или изменить следующий вызов. Для одного скрипта хватает примерно десяти строк без сервера. Если нужно общее ограничение для нескольких процессов, подключается отдельная панель управления AgentPlane, и бюджет хранится в ней.

Для кого. Разработчикам мультиагентных систем на Python, у которых один зависший цикл способен сжечь бюджет на вызовах модели.

Подходит, если

  • Агент на LangChain или своем цикле ходит в модель десятки раз за задачу, и нужен потолок стоимости на весь прогон
  • Несколько агентов в одном конвейере должны делить общий бюджет, даже если каждый работает отдельным процессом
  • Зациклившийся агент должен остановиться до следующего платного вызова, а не после счета
  • Нужно увидеть, сколько потратил каждый агент, на панели AgentPlane

Не подходит, если

  • Нужен шлюз маршрутизации запросов между провайдерами: LLM-шлюз TokenOps не заменяет, он работает рядом
  • Нужна трассировка и запись прогона для разбора: этим занимаются Chronicle и инструменты наблюдения
  • Агент написан не на Python: готовая интеграция есть только для него

Пример запроса к агенту

Подключи TokenOps к этому агенту: общий лимит два доллара на прогон, остановка при исчерпании и показ, что проверить.

Ограничения

Нужен Python 3.10 или новее. Единственное обязательное изменение в коде агента: вместо функции вызова модели ему передают `governed`, поэтому вызов модели должен быть подменяемым. Политика `cost_budget` служит запасной и может превысить лимит на один вызов, для точной остановки включают `pre_call_worst_case`. Своего сервера, базы и интерфейса у TokenOps нет: общий бюджет для нескольких процессов требует запущенной панели управления AgentPlane и ключа `CONTROL_PLANE_API_KEY`. Локального запасного хранилища для общего бюджета нет.

Как отключить. Верните в агента исходную функцию вызова модели вместо `governed` и удалите вызов `tokenops_run`. Пакет снимается командой `pip uninstall agent-tokenops`, папку скилла `integrate-tokenops` удалите из `.claude/skills/` проекта.

Частые вопросы

Как поставить TokenOps в Claude Code?

Склонируйте репозиторий и в Claude Code вызовите `/integrate-tokenops`. Скилл прочитает проект, найдет вызов модели и предложит правку. В Cursor и других ассистентах вставьте ссылку на SKILL.md с просьбой интегрировать TokenOps.

Нужен ли сервер для работы?

Нет, если агент один. Режим одного процесса работает без сервера и ключей: `python -m tokenops.demo` показывает его на встроенном примере. Сервер AgentPlane нужен только для общего бюджета нескольких процессов.

Чем TokenOps отличается от LLM-шлюза?

Шлюз следит за запросом, TokenOps за прогоном целиком. Он считает траты всех шагов и инструментов одного рабочего процесса и работает рядом со шлюзом.

Что делает пакет при остановке?

Поднимает исключение `Halt`. Его можно пропустить наружу или поймать и вернуть частичный результат. Прогон помечается остановленным, поэтому следующие вызовы из других процессов тоже отклоняются.

Какие политики входят в пакет?

Среди политик в `docs/policies/`: бюджет по стоимости, проверка худшего случая, лимит шагов, лимит времени, лимит вывода инструментов, обрезка вывода, уплотнение контекста, защита от разбегания вывода, контроль прогресса и исправление вызовов инструментов. Свои политики добавляются отдельно.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы
Официальный

Плагин от Microsoft Research и UC Berkeley снижает стоимость сессий Claude Code, Codex и Copilot CLI по опыту прошлых сессий

ПлагинШирокий доступ5,9 тыс.Звезды репозитория

Скилл экономии токенов для кодовых агентов: короткий код, сжатые ответы и компактная передача данных между агентами

ПлагинРасширенный доступ354Звезды репозитория

Token Savior индексирует код по символам, хранит память между сессиями и переписывает шумные команды Bash, чтобы агент тратил меньше токенов

MCP-серверШирокий доступ1,2 тыс.Звезды репозитория

Один агент запускает других в фоне: Claude Code, Codex, Copilot CLI, Grok Build и Pi, с выбором модели под каждый этап.

СкиллШирокий доступ119Звезды репозитория

Скилл и хуки, которые удерживают кодового агента в рамках задачи и убирают лишнюю защиту, ненужные контрольные суммы и расползание объема

ПлагинРасширенный доступ3,9 тыс.Звезды репозитория

Paritok — прокси между кодинг-агентом и API модели, который сжимает запросы и сокращает счет за входные токены.

CLIШирокий доступ1,4 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
TokenOps (эта карточка)нет84
Flightdeckнет264показывает расход и контекст сессии Claude Code на панели, но не ограничивает расходы агента в вашем коде
AI Observerнет292локальная панель наблюдения за расходом CLI-агентов без остановки прогона

Коротко о README

Автор обещает сократить лишние траты агентов до 65 процентов. Описание ведет от установки скилла к ручной интеграции в десять строк, затем к таблице задач и сравнению с LLM-шлюзами и Langfuse. Отдельный раздел объясняет разделение ролей: панель управления хранит настройки и общий реестр трат, Chronicle отвечает за трассу, TokenOps принимает решения.

Бейдж для README

Исходный SKILL.md

---
name: integrate-tokenops
description: >-
  Add TokenOps run-aware token governance to a Python agent or multi-agent
  system: put a spend cap on a whole workflow, halt or steer a run before the
  next LLM call, and attribute cost per agent. Use when the user wants to cap
  agent spend, stop a runaway agent, budget a multi-agent run, or mentions
  TokenOps, tokenops_run, wrap_complete, crossing hooks, the control plane, or
  CONTROL_PLANE_URL. Works for a single script, a LangChain or LangGraph agent,
  and FastAPI / A2A multi-agent stacks.
---

# Integrate TokenOps

Wire a spend cap and in-path enforcement into an agent stack.

Pick the smallest tier that covers the user's setup. Do not jump to Tier 3
because the project looks big. Most integrations start and stay at Tier 1.

| Tier | Use when | Adds |
|---|---|---|
| **1. One process** | A script, notebook, or single agent | ~10 lines, no server |
| **2. Shared control plane** | Several agent processes must share one budget, or you want the halt and spend visible | A running control plane and `CONTROL_PLANE_URL` |
| **3. Instrumented app** | FastAPI / A2A, the trace must flow across HTTP hops | `instrument_app` + Chronicle propagation |

Install: `pip install agent-tokenops` (Python 3.10+). It depends on
`agent-chronicle>=1.1`.

Runnable reference: `python -m tokenops.demo` (Tier 1, ships in the package).

---

## The one thing to understand first

TokenOps governs a **run**, not a request. A run is one whole workflow, and it
is a [Chronicle](https://github.com/theagentplane/chronicle) **trace**: the only
identifier is `trace_id`. Every model call and tool call in the run shares one
trace and one ledger, so a research to summarize to review pipeline stays inside
a single budget even when each step is a separate process.

Four moving parts:

- **`tokenops_run(...)`** joins the Chronicle trace (or starts one), builds the
  run's attribution, loads governance, and hands back a `bound` handle.
- **`wrap_complete(...)`** wraps the function that calls the model. Detect,

Сообщить о проблеме