EVALUATOR_ENDPOINT trên máy chủ.
Lưu ý: Bạn xác định các chiều chấm điểm. Evaluator của bạn có thể trả về bất kỳ khóa số nào mà nó muốn; Observability sẽ lưu trữ, xu hướng và hiển thị bất kỳ thứ gì bạn gửi lại.
Tổng quan
- Viết một bộ chấm điểm. Thiết lập một dịch vụ HTTP nhỏ đọc bản ghi phiên làm việc và trả về điểm số. Observability cung cấp một tài liệu tham khảo hoạt động mà bạn có thể sao chép. Xem Viết một evaluator với SDK.
- Hướng Observability đến nó. Đặt
EVALUATOR_ENDPOINT(và mộtEVALUATOR_TOKENđược chia sẻ) trên quá trình máy chủ. - Theo dõi điểm số. Mọi phiên hoàn thành được chấm điểm tự động; kết quả xuất hiện trên trang chi tiết phiên, lưới phiên và các bảng điều khiển đã lưu.

Cách hoạt động
Khi Observability SDK phát ra một sự kiệnagent_end cho một phiên, máy chủ sẽ lên lịch một đánh giá. Sau đó, nó POSTs bản ghi sự kiện đầy đủ cho dịch vụ evaluator của bạn, có thể:
-
Trả về kết quả ngay lập tức với
{"status":"done", "scores":{...}, "reasoning":{...}, "summary":"..."}. Kết quả được thêm vào dòng thời gian đánh giá của phiên.reasoningvàsummarylà tùy chọn. -
Hoãn lại với
{"status":"pending", "job_id":"abc-123"}. Observability sau đó gọiGET {EVALUATOR_ENDPOINT}/evaluate/abc-123cho đến khi evaluator của bạn trả về{"status":"done", ...}hoặc{"status":"error", "error":"..."}. Tần suất thăm dò là dựa trên từng công việc: phản hồipendingcó thể bao gồmnext_poll_secsđể ghi đè; nếu không Observability sử dụng giá trịdefault_poll_interval_secstừGET /config; nếu không máy chủ sẽ quay lạiEVALUATOR_POLLING_INTERVAL_SECS(mặc định 10 giây). Tất cả giá trị được giới hạn trong [1 giây, 1 giờ].
agent_end (ví dụ: quá trình agent bị sự cố) cũng có thể được nhặt lên: GET /config của evaluator có thể trả về {"inactivity_timeout_secs": 1800}, và Observability sẽ đánh giá bất kỳ phiên nào đã không hoạt động lâu như vậy. Đặt trường thành null hoặc bỏ nó để tắt dự phòng này.
Pipeline hoàn toàn vô dụng khi EVALUATOR_ENDPOINT không được đặt.
Một phiên có thể tích lũy nhiều đánh giá cuối cùng theo thời gian: mỗi sự kiện agent_end (và mỗi lần đánh giá lại thủ công từ bảng điều khiển) thêm một hàng đánh giá mới. Đây là cách được hỗ trợ để đánh giá một cuộc trò chuyện được tiếp tục: người dùng kết thúc một agent, quay lại sau đó, gửi thêm sự kiện, kết thúc agent một lần nữa và một đánh giá thứ hai chạy so với bản ghi đầy đủ được cập nhật. Bảng điều khiển hiển thị đánh giá gần đây nhất là tiêu đề và các đánh giá trước đó dưới dạng một dòng thời gian có thể thu gọn. Trong khi một đánh giá đang chạy cho một phiên, các sự kiện agent_end bổ sung cho phiên đó sẽ bị bỏ qua; sự kiện tiếp theo sau khi đánh giá đang chạy hoàn thành sẽ xếp hàng một đánh giá mới như thường lệ.
Dự phòng không hoạt động sẽ tái tích hợp trong các phiên được tiếp tục: nếu các sự kiện mới đến sau một đánh giá cuối cùng trước đó và phiên sau đó không hoạt động vượt quá inactivity_timeout_secs, một đánh giá mới sẽ được xếp hàng.
Các lỗi tạm thời (5xx, 429, timeout, lỗi mạng) sẽ được thử lại với exponential backoff lên tới EVALUATOR_MAX_ATTEMPTS; các phản hồi 4xx là cuối cùng. Observability an toàn để chạy với nhiều instance máy chủ được mở rộng theo chiều ngang; công việc được phân vùng để cùng một phiên không bao giờ được gửi hai lần đồng thời.
Hợp đồng HTTP
Mọi tuyến đường xác thực sử dụng xác thực mã token Bearer. Cùng một giá trị phải được cấu hình trên cả hai bên:- Máy chủ Observability: biến env
EVALUATOR_TOKEN - Dịch vụ Evaluator: được cấu hình cùng cách (SDK
agenteye-evaluatorđọcEVALUATOR_TOKENtheo quy ước)
EVALUATOR_TOKEN không được đặt, máy chủ không gửi tiêu đề Authorization; evaluator sau đó có thể chấp nhận các yêu cầu ẩn danh, điều này không sao đối với mạng chỉ nội bộ nhưng không được khuyến khích trên internet công cộng.
Các tuyến đường mà evaluator phải phục vụ
Nội dung EvalRequest được gửi bởi máy chủ
Hình dạng phản hồi
Đồng bộ (hoàn thành):reasoning (bản đồ lập luận cho từng điểm) và summary (một câu chuyện một đoạn tổng thể) đều là tùy chọn. Các khóa trong reasoning phải phản ánh các khóa trong scores; bảng điều khiển hiển thị mỗi mục ngay bên dưới thanh điểm của nó. Các evaluator cũ hơn chỉ trả về scores tiếp tục hoạt động không thay đổi; reasoning và summary chỉ đơn giản đọc là null và các yếu tố UI tương ứng bị bỏ qua.
Không đồng bộ (hoãn lại):
next_poll_secs là tùy chọn; nếu bỏ qua máy chủ sẽ quay lại default_poll_interval_secs của evaluator từ /config, sau đó đến biến env EVALUATOR_POLLING_INTERVAL_SECS của nó.
Lỗi cuối cùng phía evaluator:
error cuối cùng cho phiên.
Viết một evaluator với SDK
Bạn không phải tự tay triển khai hợp đồng HTTP. Gói Pythonagenteye-evaluator cung cấp cho bạn một wrapper FastAPI được gõ xử lý xác thực, định tuyến và các hình dạng yêu cầu/phản hồi cho bạn.
Failproof AI Observability cũng cung cấp một evaluator tham chiếu hoạt động chấm điểm helpfulness, tool_efficiency và factuality từ hình dạng của bản ghi. Sao chép nó làm điểm xuất phát và thay thế logic của riêng bạn: một bộ phán xét LLM, một engine quy tắc, bất kỳ thứ gì phù hợp với tiêu chuẩn chất lượng của bạn.
Evaluator tối thiểu:
app chạy dưới bất kỳ máy chủ ASGI nào, vì vậy uvicorn module:app khởi động nó.
Đối với các evaluator cần hoãn công việc đắt tiền, trả về JobPending thay thế và đăng ký một trình xử lý @app.job_lookup; máy chủ Observability thăm dò GET /evaluate/{job_id} cho đến khi bạn trả về trạng thái cuối cùng hoặc nắp EVALUATOR_MAX_POLL_DURATION_SECS (mặc định 1 giờ) hết hiệu lực.
Tài liệu tham khảo API đầy đủ, mô hình không đồng bộ và lược đồ sự kiện được ghi lại trong README của SDK agenteye-evaluator.
Chạy evaluator của bạn
Evaluator là dịch vụ của bạn — Failproof AI Observability không cung cấp một evaluator mặc định, vì vậy bạn xây dựng và chạy nó ở bất kỳ nơi nào bạn chạy các dịch vụ của riêng mình. Nó chạy dưới bất kỳ máy chủ ASGI nào (ví dụuvicorn my_evaluator:app); phục vụ các tuyến đường /health, /config và /evaluate từ Hợp đồng HTTP, sau đó hướng máy chủ đến nó (xem Cấu hình máy chủ).
Sau khi evaluator có thể truy cập được, GET /health trả về {"status":"ok"}. Sau khi một agent chạy kết thúc, GET /evaluations trên máy chủ trả về một hàng với status: "done" và các điểm số mà evaluator của bạn tạo ra.
Cấu hình máy chủ
Đặt trên quá trình máy chủ:
Để bật chấm điểm tự động, đặt cả
EVALUATOR_ENDPOINT và EVALUATOR_TOKEN trên máy chủ, sau đó khởi động lại để áp dụng thay đổi. Với EVALUATOR_ENDPOINT không được đặt pipeline vẫn là một no-op.
Các nút điều chỉnh ở trên là tùy chọn; chỉ đặt các biến môi trường tương ứng trên máy chủ nếu bạn cần ghi đè các giá trị mặc định.
Tham chiếu API
Lọc theo phạm vi điểm: score_filters
GET /evaluations chấp nhận một tham số score_filters tùy chọn thu hẹp kết quả theo giá trị số trong đối tượng scores. Tham số là danh sách được phân tách bằng dấu phẩy của các mục key:min..max; cả hai ràng buộc có thể được bỏ qua. Nhiều mục kết hợp với AND logic. Các hàng trong đó khóa được đặt tên vắng mặt hoặc không phải số được loại trừ. Một yêu cầu có thể mang tối đa 20 mục bộ lọc; vượt quá điều đó trả về HTTP 400.
Ví dụ:
/evaluations có các trường này:
Quyền hạn
Admin bootstrap (
ADMIN_KEY, ADMIN_EMAIL) tự động nhận những cái này.
Xem kết quả
/sessions/<id>: dòng thời gian sự kiện + thanh bên phải hiển thị điểm của phiên và bất kỳ lỗi nào từ lần cố gắng gửi. Nếu khóa của bạn cóevaluations:trigger, nút re-evaluate sẽ xuất hiện cạnh nút xuất, hữu ích cho các phiên chưa bao giờ phát raagent_endhoặc để làm mới các điểm sau khi triển khai một evaluator mới. Bảng điều khiển thăm dò kết quả mới và cập nhật thanh bên phải khi nó đến./sessions: lưới phiên có thể lọc; cột điểm hiển thị trạng thái đánh giá và điểm của mỗi phiên một cách nhanh chóng./dashboards: các chế độ xem sức khỏe đánh giá đã lưu (xem Bảng điều khiển bên dưới).

Bảng điều khiển
Trang Bảng điều khiển (/dashboards) cho phép bạn lưu một sự kết hợp các bộ lọc đánh giá dưới dạng một chế độ xem có tên, có thể tái sử dụng và theo dõi cách lát đánh giá đó đang hoạt động một cách nhanh chóng. Bảng điều khiển được chia sẻ trên toàn bộ tổ chức của bạn; mọi người có dashboards:read thấy cùng một bộ.
Mỗi bảng điều khiển ghim:
- Bộ lọc: các điều khiển giống như trang phiên: môi trường, trạng thái, agent, cửa sổ thời gian rolling và các bộ lọc phạm vi điểm (
key:min..max). - Cấu hình hiển thị: các khóa điểm nào để tính năng, ngưỡng sức khỏe xanh lá cây/hổ phách/đỏ, bảng nào để hiển thị và có nên thu gọn đến đánh giá mới nhất trên mỗi phiên.
GET /evaluations/aggregate), vì vậy các số chính xác hơn được lấy mẫu.

dashboards:read và evaluations:read; tạo và chỉnh sửa yêu cầu dashboards:write; xóa yêu cầu dashboards:delete. Admin bootstrap nhận tất cả những cái này tự động.
Khắc phục sự cố
Phiên tồn tại nhưng không có đánh giá nào được tạo. Xác nhậnEVALUATOR_ENDPOINT được đặt trên quá trình máy chủ, máy chủ và evaluator chia sẻ cùng giá trị EVALUATOR_TOKEN và điểm cuối /health của evaluator có thể truy cập được từ máy chủ. Với EVALUATOR_ENDPOINT không được đặt pipeline là một no-op.
Các đánh giá trong chuyến bay tích tụ. Truy vấn GET /evaluation-jobs để xem hàng trong chuyến bay. Kiểm tra attempt_count, next_attempt_at và last_error trên mỗi hàng. Nguyên nhân phổ biến: dịch vụ evaluator không thể truy cập hoặc trả về 5xx (được thử lại với backoff), EVALUATOR_TOKEN sai (401 là cuối cùng) hoặc một evaluator không đồng bộ trả về pending vô hạn (xem bên dưới).
Phiên hoàn thành nhưng không có đánh giá cuối cùng. Truy vấn GET /evaluation-jobs?status=polling; kết quả có thể vẫn đang trong chuyến bay. Nếu một công việc bị kẹt trong pending, máy chủ gặp sự cố khi tiếp cận evaluator; hãy kiểm tra rằng evaluator hoạt động và EVALUATOR_TOKEN khớp.
HTTP 401 from evaluator: invalid bearer token. EVALUATOR_TOKEN trên máy chủ không khớp với giá trị mà dịch vụ evaluator được cấu hình với. Chúng phải giống hệt.
Evaluator không đồng bộ trả về pending mãi mãi. Máy chủ thăm dò GET /evaluate/{job_id} cho đến khi evaluator trả về done hoặc error hoặc cho đến khi EVALUATOR_MAX_POLL_DURATION_SECS (mặc định 1 giờ) hết hiệu lực. Sau nắp đánh giá được ghi lại là timeout và xóa khỏi hàng trong chuyến bay. Tăng EVALUATOR_MAX_POLL_DURATION_SECS nếu evaluator của bạn hợp pháp cần lâu hơn mặc định.
Các bước tiếp theo
- Evaluator agent skill: có một coding agent thiết kế các chiều của bạn so với các phiên thực tế và xây dựng dịch vụ này cho bạn.
- Python SDK: phát ra các sự kiện
agent_endkích hoạt chấm điểm. - Khóa API: các quyền
evaluations:readvàevaluations:trigger. - Kiểm toán: tính năng chất lượng tự động khác của Observability, để xem xét dựa trên chính sách.

