Skip to main content
Mỗi cài đặt, phương thức và trường làm gì. Nếu bạn lần đầu tiên cấu hình, hãy bắt đầu bằng hướng dẫn — trang này dành cho việc tra cứu.

Hướng dẫn custom agents

Cài đặt, cấu hình, các phương thức sự kiện, một ví dụ chi tiết và các vấn đề thường gặp.

Đang dùng framework?

LangChain, CrewAI, LlamaIndex và Pydantic AI tự cấu hình với một lệnh gọi.
Python 3.10 hoặc mới hơn. Không có phụ thuộc thời gian chạy.

Cài đặt

Gói được cài đặt dưới dạng failproofai-sdk và nhập trong Python dưới dạng failproofai_sdk. Các tính năng bổ sung của framework như failproofai-sdk[langgraph] cài đặt framework; các adapter luôn được đi kèm trong wheel cơ bản.

Kết nối daemon Failproof

  1. Đi tới Admin → Keys và tạo một khóa với events:add.
  2. Kết nối daemon Failproof với Cloud trên máy agent.
  3. Chạy một phiên cấu hình, sau đó tìm ID chính xác của nó trong Observe → Events.
  4. Đi tới Observe → Sessions, chọn cùng một environment, và mở trace được tái tạo. Một phiên custom Python agent được tái tạo dưới dạng biểu đồ thực thi và trace sự kiện theo thứ tự.

Cấu hình

Đặt theo biến môi trường thay thế:
Không có dấu phẩy trong environment. Ingest chia trường đó trên dấu phẩy để xây dựng các bộ lọc và bỏ qua bất kỳ sự kiện nào có nhãn chứa một — vì vậy toàn bộ lần chạy biến mất âm thầm. Viết prod-eu, không phải prod,eu.configure(environment="prod,eu") tăng để bạn tìm ra ngay lập tức. AGENTEYE_ENVIRONMENT không thể tăng — không có gì gọi bạn — vì vậy nó cảnh báo một lần và quay lại dev.
Các sự kiện được xếp hàng trong bộ nhớ và được ghi ở chế độ nền mỗi flush_interval giây, với một lần xóa cuối cùng khi thoát thông dịch viên. Một quy trình bị giết hoàn toàn mất bất cứ điều gì chưa được ghi.

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 cả hai, vì vậy bạn hiếm khi chuyển chúng:
Chuyển session_id hoặc agent_id một cách rõ ràng vẫn hoạt động và thắng. Không có cả ràng buộc lẫn được truyền, cuộc gọi tăng TypeError chứ không phải phát thải một sự kiện Cloud sẽ yên lặng loại bỏ.
Danh tính di trên các biến ngữ cảnh. Nó theo asyncio tự động, nhưng không các luồng mới — bao quanh công nhân trong failproofai_sdk.propagate() hoặc sự kiện của nó hạ cánh không được gắn.

Danh mục sự kiện

Mười lăm phương thức. Hầu hết đi theo cặp — bạn gọi bộ mở, sau đó bộ đóng, và SDK đo khoảng thời gian. Ba tự đứng: error, human_pause, human_interrupt.
Mỗi phương thức cũng có session_id và agent_id, mà các phạm vi điền cho bạn. Bất cứ điều gì để lại là None được thả ra chứ không phải được gửi dưới dạng JSON null, và mỗi phương thức trả về None.
Để đánh dấu một lần chạy là thất bại, outcome phải là một trong số failed, error, timeout hoặc rejected. Bất cứ điều gì khác — kể cả gần như thất bại "failure" — đếm là thành công.

Ghép đôi và thời lượng

Một quy tắc: cho sự kiện đóng cùng id với bộ mở của nó. Đó là những gì ghép đôi chúng, và những gì cho phép SDK đo khoảng thời gian. Không tự truyền duration_ms. 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. Chuyển một số nguyên của mili giây — một float tăng, bởi vì cột là một số nguyên 32-bit và sẽ hạ cánh trống.
  • Id chỉ cần phải là duy nhất cho mỗi loại, mỗi phiên. Một lệnh gọi công cụ và một móc có thể chia một; hai phiên chạy cùng lúc có thể tái sử dụng cùng các id mà không va chạm.
  • Chúng không được phạm vi vào một agent. Một cặp mở dưới một agent và đóng dưới một agent khác vẫn khớp — đó là trường hợp bình thường trong mã đa agent.
  • request_id là tùy chọn nhưng được khuyến khích. 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 lệnh gọi đồng thời trong cùng một agent có thể sai lệch.
  • Một cặp chia tách trên các quy trình vẫn khớp trong Cloud, nhưng SDK không thể đo nó — không có gì trong quy trình nào thấy cả hai nửa.
  • Nhiều nhất 10,000 bộ mở chờ một bộ đóng cùng một lúc. Quá điều đó, bộ cũ nhất bị thả, vì vậy rò rỉ không thể phát triển mà không bị ràng buộc.

Trường của riêng bạn

Bất kỳ từ khóa bổ sung nào bạn chuyển được lưu trữ với sự kiện:
Ưu tiên các loại JSON nếu bạn muốn truy vấn chúng sau này. Bất cứ điều gì khác — một UUID, một datetime, một Decimal, một tập hợp, byte, một đối tượng mô hình — được lưu trữ dưới dạng chuỗi.
Tiền tố tên trường của bạn. Các cái bổ sung được áp dụng cuối cùng, vì vậy một trường được gọi là model, tool_name hoặc outcome yên lặng ghi đè trường thực. Các adapter framework sử dụng fw_; làm như vậy và không có gì có thể va chạm.Đây cũng là lý do tại sao một trường tùy chọn sai chính tả không bao giờ xảy ra lỗi — nó chỉ trở thành một trường tùy chỉnh mới. Nếu một trường tiêu chuẩn bị thiếu trong Cloud, kiểm tra chính tả trước tiên.
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.

Phân phối và xác minh

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, móc 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.
Nếu Cloud trống, kiểm tra $FAILPROOFAI_HOME/custom-agents/events, nếu không ~/.failproofai/custom-agents/events. Các tệp JSONL chứng minh phát thải SDK; một spool phát triển trỏ đến cấu hình daemon hoặc phân phối, trong khi một spool trống trỏ đến cấu hình hoặc thời lượng quá trình.
Chỉ kiểm tra spool khi daemon được dừng. Khi nó chạy, nó thu thập và xóa mỗi lô trong vài 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 sự kiện được phát thải.

Ngăn ngừa lỗi trong thời gian chạy tùy chỉnh

Sử dụng các phát hiện kiểm toán và các trace được liên kết để xác định hành động không an toàn, bằng chứng bắt buộc và phản ứng dự định. Một tích hợp thực thi tùy chỉnh phải hiển thị hành động trước khi thực thi, chuyển đầu vào có cấu trúc của nó đến công cụ chính sách và áp dụng quyết định cho phép, hướng dẫn hoặc từ chối kết quả. Liên hệ Failproof AI và chúng tôi sẽ giúp bạn ánh xạ các ranh giới mô hình, công cụ và vòng đời của thời gian chạy của bạn tới các móc chính sách, sau đó xác thực tích hợp với bạn.