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
- Dashboard
- CLI
-
Перейдите в Admin → Keys и создайте ключ с
events:add. - Подключите демон Failproof к Cloud на машине агента.
- Запустите один инструментированный сеанс, затем найдите его точный ID в Observe → Events.
-
Перейдите в Observe → Sessions, выберите ту же среду и откройте восстановленную трассировку.

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

