Hướng dẫn Custom agents
Cài đặt, điều chỉnh, các phương thức sự kiện, ví dụ thực tế và các vấn đề phổ biến.
Sử dụng một framework?
LangChain, CrewAI, LlamaIndex và Pydantic AI tự điều chỉnh với một cuộc gọi.
Cài đặt
failproofai-sdk và được nhập trong Python dưới tên failproofai_sdk. Các add-on framework như failproofai-sdk[langgraph] cài đặt chính framework; các adapter luôn được đi kèm trong wheel cơ sở.
Kết nối daemon Failproof
- Dashboard
- CLI
-
Đi tới Admin → Keys và tạo một khóa với
events:add. - Kết nối daemon Failproof với Cloud trên máy agent.
- Chạy một phiên được điều chỉnh, sau đó tìm ID chính xác của nó trong Observe → Events.
-
Đi tới Observe → Sessions, chọn cùng một môi trường và mở trace được tái tạo.

Cấu hình
Đặt bằng biến môi trường thay thế:
Các sự kiện được xếp hàng trong bộ nhớ và được ghi trong nền mỗi
flush_interval giây, với một lần xóa cuối cùng khi thoát trình thông dịch. Một quá trình bị giết hoàn toàn sẽ mất bất cứ điều gì chưa được viết.
Danh tính
Mỗi sự kiện thuộc về một phiên và một agent. Các phạm vi điền vào cả hai, vì vậy bạn hiếm khi vượt qua chúng:session_id hoặc agent_id rõ ràng vẫn hoạt động và chiến thắng. Khi không có liên kết cũng không truyền, cuộc gọi tăng TypeError thay vì phát hành một sự kiện Cloud sẽ yên tĩnh loại bỏ.
Danh tính đi trên các biến bối cảnh. Nó theo dõi các tác vụ
asyncio tự động, nhưng không luồng mới — bọc một worker trong failproofai_sdk.propagate() hoặc các sự kiện của nó hạ cánh không được đính kèm.Danh mục sự kiện
Mười lăm phương thức. Hầu hết đều có cặp — bạn gọi phần mở, sau đó phần đóng, và SDK đo khoảng thời gian.
Ba người đứng một mình:
error, human_pause, human_interrupt.
Mọi trường, theo phương thức
Mọi trường, theo phương thức
Mỗi phương thức cũng lấy
session_id và agent_id, được các phạm vi điền cho bạn. Bất cứ điều gì để lại là None được thả bỏ thay vì được gửi dưới dạng JSON null, và mỗi phương thức trả về None.Ghép đôi và khoảng thời gian
Một quy tắc: cung cấp cho sự kiện đóng cùng id với phần mở của nó. Đó là điều ghi đôi chúng, và điều cho phép SDK đo khoảng thời gian.
Không truyền
duration_ms chính mình. SDK đo nó, và truyền nó tăng ValueError.
Ngoại lệ duy nhất là model_response, nơi chỉ bạn biết độ trễ nhà cung cấp thực tế. Truyền toàn bộ số mili giây — một float tăng, vì cột là một số nguyên 32-bit và sẽ khác không hạ cánh trống.
Các trường hợp cạnh
Các trường hợp cạnh
- Ids chỉ cần duy nhất cho mỗi loại, mỗi phiên. Một cuộc gọi công cụ và một hook có thể chia sẻ một; hai phiên chạy cùng một lúc có thể tái sử dụng cùng một ids mà không va chạm.
- Chúng không được phạm vi để một agent. Một cặp mở dưới một agent và đóng dưới một agent khác vẫn phù hợp — đó là trường hợp bình thường trong mã multi-agent.
request_idlà tùy chọn nhưng được khuyến nghị. Không có nó, các sự kiện mô hình ghép đôi theo thứ tự họ tới, vì vậy hai cuộc gọi đồng thời trong cùng một agent có thể ghép đôi sai.- Một cặp chia nhỏ trên các quá trình vẫn khớp trong Cloud, nhưng SDK không thể đo nó — không có gì trong quá trình nào thấy cả hai nửa.
- Tối đa 10.000 openers chờ đợi một closer cùng một lúc. Quá mức, người già nhất bị thả, vì vậy một rò rỉ không thể phát triển mà không bị ràng buộc.
Các trường riêng của bạn
Bất kỳ từ khóa bổ sung nào bạn truyền được lưu trữ với sự kiện:Decimal, một set, bytes, một đối tượng mô hình — được lưu trữ dưới dạng chuỗi.
Năm tên này được dành riêng và bị từ chối hoàn toàn: timestamp, session_id, agent_id, type, environment.
Gửi dữ liệu và xác minh
- Dashboard
- CLI
Trong Observe → Events, xác minh
agent_start tồn tại trước tiên và agent_end tồn tại cuối cùng. Sau đó mở Observe → Sessions và xác nhận các sự kiện mô hình, công cụ, con người, hook và lỗi xuất hiện theo thứ tự dự định. Sử dụng ID phiên làm khóa khắc phục sự cố chính.$FAILPROOFAI_HOME/custom-agents/events, nếu không thì ~/.failproofai/custom-agents/events. Các tệp JSONL chứng minh phát hành SDK; một spool phát triển chỉ đến cấu hình daemon hoặc gửi dữ liệu, trong khi một spool trống chỉ đến điều chỉnh hoặc thời lượng quá trình.
Chỉ kiểm tra spool khi daemon bị dừng. Khi nó chạy, nó thu thập và xóa từng batch trong vòng mili giây, vì vậy danh sách thư mục đua với bộ sưu tập và hiển thị ít sự kiện hơn nhiều so với những gì được phát hành.

