centian
Centian
Контролируйте и проверяйте, что на самом деле делают ваши ИИ-агенты — в режиме реального времени.
ИИ-агенты не имеют единого понимания того, что такое «успех».
Centian позволяет вам определить успех — и обеспечивает его достижение.
→ Видьте каждый вызов инструмента, который делает ваш агент.
→ Мгновенно блокируйте небезопасные действия.
→ Проверяйте, что задачи действительно выполнены (а не просто запущены).
Посмотрите в действии (2-минутная демонстрация)
centian demo -a claudeВо время выполнения вы можете наблюдать:
✔ Агент пытается обойти тесты → заблокировано ✔ Задача не проходит проверку → немедленно помечено ✔ Нарушение рабочего процесса → агент пропустил фазу планирования
→ Centian фиксирует это в режиме реального времени
Еще не установили?
curl -fsSL https://raw.githubusercontent.com/T4cceptor/centian/main/scripts/install.sh | bashИли смотрите Начало работы для получения дополнительных вариантов.
Проблема
ИИ-агенты не имеют единого понимания того, что такое «успех».
Пример: Ваш агент исправляет неработающий тест.
Что вы видите: ✔ “Задача выполнена - Тесты зеленые”
Но:
агент изменил тест, а не код.
условие сбоя никогда не существовало.
код по-прежнему не работает.
→ Без проверки это выглядит как успех.
Что такое Centian?
Он находится между вашим агентом и инструментами, которые он использует:
Agent (Claude / Codex / Gemini) -- the brain
↓
Centian -- the control layer
↓
MCP Tools (filesystem, APIs, DB) -- the actionsВсе вызовы инструментов проходят через прокси Centian — предоставляя вам:
полный контроль над тем, что могут делать агенты
видимость каждого действия
проверку того, что задачи действительно были выполнены
Проверка процесса агента — определите успех заранее
Centian проверяет, что агенты делают то, что обещали.
Перед выполнением вы определяете, как выглядит успех — и Centian обеспечивает его выполнение шаг за шагом.

Без проверки агенты могут казаться правильными, будучи неправыми.
Centian позволяет вам определить успех — и обеспечивает его достижение.
Проверка процесса позволяет вам определять декларативные шаблоны рабочих процессов в YAML. Каждый шаблон описывает структурированный жизненный цикл — онбординг, планирование, создание каркаса, выполнение — с предварительными условиями, постусловиями, инвариантами и разрешениями на инструменты для каждой фазы.
Когда агент регистрирует задачу из шаблона:
Онбординг — агент собирает контекст проекта и ограничения
Планирование — агент предлагает подход, который замораживается в контракт на выполнение
Выполнение — агент работает по определенным шагам, а Centian проверяет правильность на каждом этапе
Завершение — постусловия подтверждают, что задача была выполнена правильно
Замороженный контракт на выполнение является ключевым: как только планирование завершено, агент считывает данные из неизменяемого контракта, а не из изменяемого контекста промпта. Вы можете доказать, что агент обязался сделать, и проверить, действительно ли он это сделал.
Управление инструментами по фазам: каждый узел рабочего процесса может объявить, какие MCP-инструменты агент имеет право вызывать. Во время фазы ожидания одобрения все последующие инструменты блокируются. Во время создания каркаса вы можете разрешить доступ к файловой системе, но заблокировать команды оболочки.
Примеры шаблонов для рабочих процессов TDD включены в репозиторий в папке task-templates/.
Схема шаблонов задокументирована и разработана с учетом расширяемости. Вклад сообщества в виде шаблонов для распространенных рабочих процессов приветствуется — см. CONTRIBUTING.md.
Начало работы
Установка
curl -fsSL https://raw.githubusercontent.com/T4cceptor/centian/main/scripts/install.sh | bashДля всех методов установки см. Варианты установки.
Локальная демонстрация
Демонстрация показывает Centian как плоскость управления агентами в привычной среде: разработка через тестирование (TDD).
Агенту дается задача реализовать score_paranthesis - см. промпт - и затем он направляется через задачу с помощью Centian.
Что вы увидите:
✔ Агент пытается обойти тесты → заблокировано ✔ Задача не проходит проверку → немедленно помечено ✔ Нарушение рабочего процесса → агент пропустил фазу планирования
→ Centian фиксирует это в режиме реального времени
Предварительные требования: Перед запуском centian demo убедитесь, что у вас есть:
node(протестировано сv24.2.0) иnpx(протестировано с11.3.0), доступные в вашемPATH- требуется для запуска MCP-серверов файловой системы и оболочки, а также для запуска тестовClaude Code, Gemini CLI или OpenAI Codex установлены и аутентифицированы - Centian запускает выбранный агент в headless-режиме через его локальный CLI, поэтому демонстрация не удастся, если этот бинарный файл агента отсутствует или он не вошел в систему.
Claude Code (sonnet)
centian demo -a claudeGemini CLI (gemini-2.5-flash)
centian demo -a geminiCodex: (используя опцию по умолчанию)
centian demo -a codexПримечание: для демонстрации codex Centian скопирует (а позже удалит) существующие данные аутентификации для OpenAI API.
Что делает демонстрация
Настройка среды: создание локальной папки
.centian/demo, копирование туда необходимых артефактов (см. здесь), настройка конфигураций.Запуск сервера Centian локально на доступном порту (выбирается автоматически).
Запуск выбранного агента кодирования в headless-режиме с промптом.
Пользовательский интерфейс Centian открывается в новом окне браузера, показывая страницу обзора задачи - как только агент регистрирует задачу в Centian, вы можете проверить, что делает агент, нажав на нее и наблюдая за событиями MCP.
После завершения работы агента CLI спросит вас, хотите ли вы закрыть сервер. Не стесняйтесь делать это, вы можете запускать демонстрацию несколько раз, также с разными агентами - предыдущие запуски будут сохранены.
Примечание: демонстрация предназначена для демонстрации возможностей Centian и получения первого впечатления, это НЕ промышленная установка (например, auth = false, использование 127.0.0.1). Если вы хотите использовать Centian, НЕ копируйте и не ссылайтесь на созданную конфигурацию, ознакомьтесь с Конфигурацией, чтобы узнать, как настроить свой собственный прокси Centian.
Использование init для базовой настройки прокси (без проверки задач)
# 1. Install
curl -fsSL https://raw.githubusercontent.com/T4cceptor/centian/main/scripts/install.sh | bash
# 2. Initialize with a starter MCP server
centian init -q
# Optional: check created config at ~/.centian/config.json
# 3. Add your own MCP servers
centian server add --name "filesystem" --command "npx" --args "-y,@modelcontextprotocol/server-filesystem,/path/to/project"
centian server add --name "deepwiki" --url "https://mcp.deepwiki.com/mcp"
# 4. Start the proxy
centian start
# 5. Point your MCP client at Centian (use the config shown during init)С проверкой задач
Добавьте возможности в свою конфигурацию в ~/.centian/config.json. В плоской структуре возможности находятся в разделе proxy; в проектно-ориентированной структуре они находятся в каждом проекте:
{
"proxy": {
"capabilities": {
"taskVerification": {
"enabled": true,
"templatesPath": "/path/to/task-templates"
},
"eventStorage": {
"enabled": true,
"driver": "sqlite"
},
"ui": {
"enabled": true
}
}
}
}Примечание: по умолчанию task-templates/integrated автоматически интегрируются в Centian, но могут/будут перезаписаны шаблонами, использующими тот же task.id
Запустите Centian и откройте пользовательский интерфейс:
centian start
# UI available at http://localhost:9666/ui/tasksКак Centian делает это возможным
1. Уровень прокси: Один шлюз, все ваши MCP-серверы
Настройте свои MCP-серверы один раз в Centian. Направьте каждый клиент на localhost:9666. Пространство имен инструментов (<server>_<tool>) автоматически устраняет конфликты.
{
"gateways": {
"default": {
"mcpServers": {
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"] },
"github": { "url": "https://api.github.com/mcp", "headers": { "Authorization": "Bearer <token>" } }
}
}
}
}Каждый клиент подключается к одной конечной точке:
{
"mcpServers": {
"centian": {
"url": "http://127.0.0.1:9666/mcp/default",
"headers": { "X-Centian-Auth": "<your-api-key>" }
}
}
}2. Уровень управления: Программируемое промежуточное ПО для вызовов инструментов
Процессоры перехватывают каждый вызов инструмента до и после выполнения. Они получают полный контекст запроса/ответа, могут изменять полезные нагрузки и могут прервать цепочку.
Варианты использования:
Аудит-логирование каждого вызова инструмента в базу данных
Ограничение частоты вызовов, превышающих пороговые значения
Удаление секретов или переменных среды из аргументов инструментов
Редактирование PII из ответов
Принудительное применение списков разрешенных инструментов, которые может вызывать агент
Создайте каркас нового процессора:
centian processor new3. Видимость выполнения
Каждый вызов MCP-инструмента фиксируется с метками времени, идентификаторами сессий, полезными нагрузками запросов/ответов и — когда активна проверка задач — контекстом рабочего процесса, который его создал.
Без проверки задач Centian регистрирует события через структурированный JSONL и запрашиваемое хранилище событий SQLite. При включенной проверке задач Centian предоставляет встроенный пользовательский интерфейс, который показывает активность агента в контексте того, что агент должен был делать:
Временная шкала, сгруппированная по фазам рабочего процесса
Вызовы инструментов, соотнесенные с шагами задачи
Неудачные проверки постусловий с подробными метаданными сбоя
Полная проверка запроса/ответа
# CLI log access
centian logs
# Embedded UI (when task verification + UI are enabled)
# http://localhost:9666/ui/tasksДокументация
Подробная документация находится в docs/.
Конфигурация
Centian использует единую конфигурацию JSON в ~/.centian/config.json. Конфигурация поддерживает две структуры:
Плоская структура (по умолчанию из centian init) — шлюзы, аутентификация и возможности находятся на верхнем уровне:
{
"name": "Centian Server",
"version": "1.0.0",
"auth": true,
"authHeader": "X-Centian-Auth",
"proxy": {
"host": "127.0.0.1",
"port": "9666",
"timeout": 30,
"logLevel": "info",
"capabilities": {
"taskVerification": { "enabled": false },
"eventStorage": { "enabled": true, "driver": "sqlite" },
"ui": { "enabled": false }
}
},
"gateways": {
"default": {
"mcpServers": {
"my-server": {
"url": "https://example.com/mcp",
"headers": { "Authorization": "Bearer <token>" },
"enabled": true
}
}
}
},
"processors": []
}Проектно-ориентированная структура — для изоляции нескольких рабочих нагрузок с отдельными базами данных, флагами функций и префиксами маршрутов:
{
"name": "Centian Server",
"version": "1.0.0",
"proxy": {
"host": "127.0.0.1",
"port": "9666",
"timeout": 30
},
"projects": {
"team-alpha": {
"auth": true,
"capabilities": {
"taskVerification": { "enabled": true },
"eventStorage": { "enabled": true },
"ui": { "enabled": true }
},
"gateways": {
"workbench": {
"mcpServers": {
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"] }
}
}
}
}
}
}Каждый проект получает свою собственную базу данных SQLite (~/.centian/projects/<slug>/events.sqlite) и свой собственный префикс маршрута. Плоская структура автоматически переносится в проект "default" во время выполнения, поэтому существующие конфигурации продолжают работать без изменений.
Конечные точки
Агрегированный шлюз:
http://127.0.0.1:9666/mcp/<gateway>Индивидуальный сервер:
http://127.0.0.1:9666/mcp/<gateway>/<server>Шлюз с областью действия проекта:
http://127.0.0.1:9666/<project>/<mcp>/<gateway>Пользовательский интерфейс с областью действия проекта:
http://127.0.0.1:9666/<project>/ui
В агрегированном режиме инструменты имеют пространство имен, чтобы избежать конфликтов. Проект "default" использует маршруты без префиксов для обратной совместимости.
Безопасность
Привязка к 0.0.0.0 разрешена только в том случае, если auth явно настроена в каждом проекте. Это предотвращает случайное раскрытие.
Команды
Команда | Описание |
| Инициализировать конфигурацию (используйте |
| Запустить прокси |
| Сгенерировать новый API-ключ |
| Добавить MCP-сервер |
| Управление MCP-серверами |
| Управление конфигурацией |
| Создать каркас нового процессора |
| Просмотреть последние логи MCP |
Варианты установки
Метод | Платформа | Полный UI | Команда |
Shell-скрипт | Linux, macOS | ✓ |
|
Бинарный файл релиза | Linux, macOS, Windows | ✓ | Скачать из релизов |
| Любая | ✗ |
|
Docker | Linux, macOS, Windows | ✓ |
|
Homebrew | — | — | Запланировано |
Shell-скрипт (рекомендуется)
curl -fsSL https://raw.githubusercontent.com/T4cceptor/centian/main/scripts/install.sh | bashПоддерживает флаги --version и --install-dir. По умолчанию устанавливается в ~/.local/bin.
Бинарные файлы релизов
Скачайте соответствующий архив из последнего релиза, распакуйте его и поместите centian в ваш PATH.
go install
go install github.com/T4cceptor/centian@latestТребуется Go 1.25+. Собирается без встроенного веб-интерфейса — используйте бинарный файл релиза или Docker для получения полного UI.
Docker
# Full image (Linux, macOS, Windows)
docker run --rm -p 9666:9666 t4ce/centian:latest
# Alpine image
docker run --rm -p 9666:9666 t4ce/centian:latest-alpineHomebrew
Поддержка Homebrew запланирована.
Текущий статус
Centian пригоден для использования и активно развивается, но это версия до 1.0 с намеренными пробелами. Мы открыто говорим о том, что работает, а что еще нет.
Работает сегодня:
MCP-прокси с агрегацией шлюзов и пространством имен инструментов
Изоляция на основе проектов: базы данных для каждого проекта, префиксы маршрутов, возможности и аутентификация (подготовка к мультиарендности)
Программируемая цепочка процессоров (CLI и вебхук)
Про
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/T4cceptor/centian'
If you have feedback or need assistance with the MCP directory API, please join our Discord server