Перейти до основного вмісту

Локальний API агента.

Демон Sentinel надає доступ до API HTTP/JSON з підтримкою версій через локальний Unix сокет /run/simaai-sentinel/api.sock. Він не прослуховує TCP-порт. API та інтерфейс командного рядка використовують один і той самий кеш і захищене сховище контрольних точок, тому сліди, створені агентом, одразу відображаються в інтерфейсі користувача та в командному рядку.

curl --unix-socket /run/simaai-sentinel/api.sock http://localhost/v1/health

Кінцеві точки

Метод і спосіб.Мета.
GET /v1/healthВерсія, актуальність, кількість зразків і показників, помилки та активний трас.
GET /v1/cacheПовністю оновлений документ із кешованими даними в реальному часі.
GET /v1/metricsВизначення, одиниці вимірювання, описи та порогові значення показників.
GET /v1/samples/latestОстанні значення показників, відсортовані за часом.
GET /v1/traces/activeАктивний слід або null.
POST /v1/tracesЗапустіть трасування з вказаною назвою.
POST /v1/traces/stopЗупиніть і продовжіть активне відстеження.
GET /v1/runsПерелічіть зведені дані про поточні та завершені запуски.
GET /v1/runs/{name-or-id}Відновіть збережені дані запуску та необроблені зразки.
GET /v1/compare?runs=A,BПорівняйте два або більше результатів; перший із них буде базовим значенням.

Приклад запиту:

curl --unix-socket /run/simaai-sentinel/api.sock \
-H 'Content-Type: application/json' \
-d '{"name":"baseline","note":"before optimization","tags":["compiler-v1"]}' \
http://localhost/v1/traces

Зупиніть активне відстеження:

curl --unix-socket /run/simaai-sentinel/api.sock \
-X POST http://localhost/v1/traces/stop

Назви мають бути унікальними, і може бути активною лише одна траєкторія. У разі конфлікту операцій життєвого циклу повертається код HTTP 409. Невідомі запуски та маршрути повертають код HTTP 404. Неправильні запити повертають код HTTP 400. У відповідях використовується JSON null для недоступних показників. За замовчуванням відповіді порівняння містять метадані запуску, статистику та базові дельти. Додавайте raw=1 лише тоді, коли потрібні зразки з позначкою часу.

Безпека та паралельність

Цей сокет є локальним для DevKit і ніколи не надається для віддаленого доступу через Sentinel.

Він навмисно доступний для локальних користувачів, оскільки підтримувані операції керування лише запускають і зупиняють трасування телеметрії; API не видаляє дані, не виконує завдання або не змінює апаратне забезпечення. Віддалений доступ має забезпечуватися автентифікованим проксі-сервером Kerrigan/Fleet Manager, а не шляхом перенаправлення цього сокета або додавання неавтентифікованого TCP-прослуховувача.

Для запису в кеш використовується атомарне перейменування. Операції запуску використовують те саме ексклюзивне блокування файлу, що й CLI, TUI та демон-реєстратор. Отже, трасування, розпочате через API, можна безпечно переглядати або зупиняти через будь-який підтримуваний інтерфейс.

Навички агента.

Під час встановлення запускається згенерований скрипт встановлення Sentinel, який використовує sima-cli playbooks install та точну версію Sentinel з Git, з якої було створено пакет. Це забезпечує узгодженість версій середовища виконання та навичок, не додаючи вкладені ресурси навичок до артефакту Vulcan. Менеджер playbook встановлює навичку для кожного підтримуваного агента та записує її вихідний коміт у локальний реєстр.

Встановлення Sentinel на DevKit завжди починається з sima-cli neat install sentinel, тому зазвичай не потрібен окремий крок встановлення навичок. Щоб використовувати навичку Sentinel у середовищі, де не встановлено пакет DevKit (наприклад, у контейнері SDK або на робочій станції розробника), встановіть навичку безпосередньо з GitHub за допомогою sima-cli цього середовища.

sima-cli playbooks install gh:sima-neat/sentinel/skills/use-sentinel

Щоб протестувати зміни перед їх застосуванням до main, додайте посилання Git:

sima-cli playbooks install --force \
gh:sima-neat/sentinel/skills/use-sentinel@feature/checkpoint-run-comparison

Оновлення або видалення навику все ще здійснюється за допомогою sima-cli playbooks.