Skip to main content

Cài đặt

Hỗ trợ: pydantic-ai-slim phiên bản 2.0 đến 3.0. Phiên bản 2.0 đã loại bỏ Agent(instrument=...) và giới thiệu giao thức khả năng mà adapter này được xây dựng dựa trên, vì vậy phiên bản 1.x không thể được trang bị theo cách này.

Trang bị

instrument() phải chạy trước khi bạn xây dựng một Agent. Khả năng được thêm vào tại thời điểm xây dựng, vì vậy một agent được xây dựng trước đó sẽ không có khả năng này và không ghi lại gì, mà không có lỗi vì không có gì sai. Đây là nguyên nhân phổ biến nhất gây ra trace rỗng với adapter này.
Các agent ở phạm vi module là nơi gặp phải vấn đề này:
Xác nhận rằng nó đã có hiệu lực:
Pydantic AI hợp nhất danh sách bạn truyền thành một root_capability duy nhất, vì vậy không có thuộc tính agent.capabilities để đọc. Các agent được xây dựng trong khi được trang bị sẽ giữ lại khả năng này, vì vậy bạn có thể uninstrument() và trang bị lại mà không cần xây dựng lại chúng.

Những gì được ghi lại

Không có cặp hook và không có cặp human-in-the-loop ở đây. Pydantic AI không có ranh giới node hoặc step để đặt trong dấu ngoặc và không có pause cho người dùng tích hợp, vì vậy không có gì để ánh xạ. Nếu bạn xây dựng một trong hai cái, hãy phát ra các sự kiện tự mình — xem Custom agents. output_type không tạo ra sự khác biệt đối với trace. Một lần chạy được gõ kiểu dữ liệu và một lần chạy chuỗi ký tự tạo ra các sự kiện tương tự.

Ví dụ

Trong trace, restock_eta xuất hiện như một tool_result mang theo lỗi, tiếp theo là một lệnh gọi mô hình khác nơi agent giải quyết vấn đề đó, và lần chạy vẫn kết thúc với success. Cả hai sự kiện đều được ghi lại.

Lỗi, thử lại và luồng điều khiển

Pydantic AI nâng cao ngoại lệ cho ba điều khác nhau, và adapter tách chúng: ModelRetry nằm trong nhóm đầu tiên một cách cố ý. Điều này có nghĩa là một nỗ lực thực sự đã thất bại và mô hình được yêu cầu thử lại, đó là những gì trường lỗi của span công cụ dành cho. Phân loại nó như luồng điều khiển sẽ che giấu các thất bại công cụ thực sự đằng sau một lần chạy thành công.

Đặt tên cho span của bạn

Span chạy của Pydantic AI được đặt tên là agent. Bao quanh lệnh gọi để đặt cho nó một tên bạn chọn:
Span của framework sau đó lồng trong inventory, và đó là nơi các sự kiện mô hình và công cụ được ghi lại. Giữ agent_id có thẻ lực thấp. Nó là khía cạnh chính trên mọi bề mặt bảng điều khiển, vì vậy hãy sử dụng tên vai trò, không bao giờ sử dụng UUID hoặc chuỗi mỗi lần chạy.

Kiểm soát phiên

Được giải quyết theo thứ tự này, kết quả phù hợp đầu tiên thắng:
  1. instrument("pydantic_ai", session_id=...)
  2. Phạm vi failproofai_sdk.session() bao quanh
  3. conversation_id của lần chạy, sau đó là run_id của nó
  4. Một uuid4().hex được tạo

Các tùy chọn

Các vấn đề phổ biến

Agent được xây dựng trước khi instrument() chạy. Xem cảnh báo ở trên và kiểm tra agent.root_capability.capabilities.
Một raise trần trụi sẽ lan truyền; đó là thiết kế của Pydantic AI. Để cho phép mô hình giải quyết vấn đề đó, hãy nâng cao ModelRetry với một thông báo mà nó có thể hành động. Thất bại được ghi lại dù bằng cách nào.
Đó là span chạy của Pydantic AI, và đó là nơi các sự kiện mô hình và công cụ được ghi lại. Thả phạm vi của riêng bạn nếu bạn muốn một span duy nhất, với chi phí là tên tùy chỉnh.
Ngăn xếp đồ thị không đồng bộ của Pydantic AI dài hơn giới hạn trường payload, và dòng cuối cùng của traceback là ngoại lệ tự nó. Trường này được cắt ngắn từ phía trước chứ không phải từ phía sau, vì vậy dòng bạn cần sẽ được giữ lại.

Tiếp theo

Cách hoạt động

Các cặp, ID, vòng đời phiên và giao hàng.

Đọc trace

Theo dõi nhân quả thông qua phiên bạn vừa chụp.

Các framework khác

LangGraph, CrewAI, LlamaIndex và các agent tùy chỉnh.