Skip to main content
Инструментируйте трассировки пользовательского агента с помощью failproofai-sdk, чтобы Failproof AI мог восстановить каждое выполнение, проверить его поведение и найти подтвержденные доказательства сбоев. SDK записывает структурированные события, которые демон Failproof доставляет в Cloud. Требуется Python 3.10 или новее. Трассировка делает пользовательские агенты наблюдаемыми и проверяемыми. Для предотвращения небезопасного действия перед его выполнением также требуется хук принудительного применения в вашей среде выполнения.
Чтобы применить политики в пользовательской установке агента, свяжитесь с Failproof AI. Мы поможем отобразить границы модели, инструментов и жизненного цикла вашей среды выполнения на хуки политик.

Установите failproofai-sdk

SDK в настоящее время распространяется как приватный wheel. Попросите текущую версию и доступ к загрузке у вашего контакта в Failproof AI.
С uv сначала загрузите wheel и выполните uv add ./failproofai_sdk-${VERSION}-py3-none-any.whl. Зафиксируйте wheel в приватном репозитории артефактов или в блокировке зависимостей. Пакет устанавливается как failproofai-sdk и импортируется в Python как failproofai.

Подключите демон Failproof

  1. Перейдите в Admin → Keys и создайте ключ с events:add.
  2. Подключите демон Failproof к Cloud на машине агента.
  3. Запустите один инструментированный сеанс, затем найдите его точный ID в Observe → Events.
  4. Перейдите в Observe → Sessions, выберите ту же среду и откройте восстановленную трассировку. Пользовательский сеанс агента Python, восстановленный как граф выполнения и упорядоченная трассировка событий.

Инструментируйте полное выполнение

Вызовите configure() один раз при запуске процесса. Каждый вызов события требует только именованные аргументы и требует стабильных session_id и agent_id.
Выпускайте agent_start один раз за участника. Для подагентов повторно используйте session_id родителя, дайте каждому участнику отдельный agent_id и установите parent_id на ID агента родителя, а не на ID сеанса.

Справочник по конфигурации

SDK записывает в явный base_dir при его установке. В противном случае используется очередь custom-agents демона Failproof в FAILPROOFAI_HOME или ~/.failproofai. SDK ставит вызовы в очередь в памяти и записывает пакеты на фоновом потоке. Он также пытается выполнить финальную промывку через обработку atexit Python. Для недолгоживущих рабочих процессов позвольте нормальному завершению интерпретатора; принудительное завершение процесса может привести к потере событий, оставшихся в памяти.

Каталог событий

Все методы возвращают None. Поля, оставленные как None, опускаются вместо того, чтобы быть написанными как JSON null. Используйте outcome="failed", "error", "timeout" или "rejected" когда завершение должно считаться сбоем. Другие значения, включая "failure", не классифицируются как сбои текущим бэкендом.

Правила корреляции и длительности

  • Повторно используйте один и тот же tool_call_id, hook_id, pause_id или input_id для соответствующего события завершения.
  • SDK вычисляет duration_ms для tool_result, hook_completed, agent_resume и human_input. Передача его самостоятельно этим методам вызывает ValueError.
  • ID инструментов и хуков используют один глобальный процесс-широкий map ожидающих. Сделайте их уникальными по всем параллельным сеансам и во всех пространствах имен; ID поставщиков или UUID безопаснее всего.
  • Пара, разделенная между процессами, по-прежнему коррелирует в нижестоящем направлении, но SDK не может вычислить его длительность внутри процесса.
  • Карта ожидания содержит не более 10000 начал и вытесняет самую старую запись при заполнении.

Пользовательские поля и полезные нагрузки

Каждое событие принимает дополнительные поля ключевых слов. Используйте значения, совместимые с JSON, когда нижестоящим запросам требуется структура. Неподдерживаемые листья, такие как UUID, даты-времени, десятичные числа, наборы, байты и объекты модели, преобразуются в строки средством записи. Зарезервированные пользовательские имена: timestamp, session_id, agent_id, type и environment. Опечатки в необязательных полях принимаются как новые пользовательские поля, поэтому проверьте выпущенный JSON, когда стандартное поле не появляется в Cloud.

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

В Observe → Events сначала убедитесь, что agent_start существует, а agent_end существует последним. Затем откройте Observe → Sessions и убедитесь, что события модели, инструмента, человека, хука и ошибки появляются в предполагаемом порядке. Используйте ID сеанса как основной ключ для поиска и устранения неисправностей.
Если Cloud пусто, проверьте $FAILPROOFAI_HOME/custom-agents/events, иначе ~/.failproofai/custom-agents/events. Файлы JSONL доказывают выпуск SDK; растущая очередь указывает на конфигурацию или доставку демона, а пустая очередь указывает на инструментацию или время жизни процесса.

Предотвращайте сбои в пользовательской среде выполнения

Используйте выводы аудита и связанные трассировки для определения небезопасного действия, требуемых доказательств и предполагаемого ответа. Пользовательская интеграция принудительного применения должна предоставить действие перед выполнением, передать его структурированный вход механизму политик и применить полученное решение allow, instruct или deny. Отправьте письмо на адрес support@befailproof.ai для разработки и проверки этой интеграции для вашей среды выполнения.