Skip to main content

Cài đặt

Hỗ trợ: llama-index-core 0.14.23 đến 0.15. Phiên bản 0.14.23 là phiên bản nơi workflow stream bắt đầu mang theo các sự kiện agent được gõ mà adapter này đọc. Bên dưới nó, tên mô hình và cấu trúc agent đều bị mất.

Instrument

API agent của LlamaIndex là async. Mỗi phạm vi hoạt động dưới cả async withwith và tạo ra các sự kiện giống hệt nhau. instrument() gắn một event handler và một span handler vào global dispatcher của LlamaIndex. Cùng nhau, chúng làm cho vòng lặp agent có thể nhìn thấy được, không chỉ các model call của nó.
Nếu không có một đối số bổ sung trên LLM của bạn, mọi token count trong trace của bạn sẽ là null. Xem Token counts bên dưới.

Token counts

FunctionAgent gọi astream_chat, và llama-index-llms-openai không gửi stream_options={"include_usage": True} khi nó streaming. Do đó, nhà cung cấp không bao giờ gửi usage chunk, và không có gì để bất kỳ instrumentation nào đọc. Đây là hành vi upstream của LlamaIndex. Opt in trên LLM của bạn:
Được đo lường trên cùng một run và mô hình: Các lệnh gọi không streaming (llm.chat, llm.achat) báo cáo usage mà không cần cấu hình. Chỉ đường dẫn streaming, là đường dẫn agent mặc định, cần điều này.

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

agent_idFunctionAgent.name khi bạn đặt một, còn không thì là tên lớp workflow. Dưới một AgentWorkflow, mỗi agent nhận được lượt lần lượt có span nested riêng của nó dưới workflow, vì vậy handoff được đọc thành hai agent chứ không phải một. Output retrieval được tóm tắt thay vì được dump. Một retriever trả về các tài liệu, và lưu trữ chúng trong payload sẽ đặt corpus của bạn vào event store một lần cho mỗi truy vấn. Thay vào đó, số lượng, phạm vi điểm số và các đoạn trích bị cắt ngắn được giữ lại.

Ví dụ

Vòng lặp agent xuất hiện trong trace dưới dạng các cặp hook: init_run, setup_agent, run_agent_step, parse_agent_output, call_tool, và aggregate_tool_results. Đây là vòng lặp của chính framework, vì vậy chúng là hooks chứ không phải agents, điều này giữ agent_id có ý nghĩa.

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

agent_idFunctionAgent.name khi bạn đặt một, còn không thì là tên lớp workflow.
Trong một AgentWorkflow, tên đó cũng là tên mà mỗi handoff được ghi lại dưới:
Vì vậy, agent_id cho bạn biết agent nào đã làm công việc và parent_id cho bạn biết workflow nào nó thuộc về. Một agent trao lại quyền kiểm soát sau này sẽ mở một lượt thứ hai chứ không phải mở lại lượt đầu tiên của nó. Bọc lệnh run để ghi đè nó, hoặc để nhóm nhiều agent dưới một parent:
Giữ agent_id là low cardinality. Đây là facet chính trên mọi bề mặt dashboard, vì vậy hãy sử dụng tên vai trò hoặc workflow, không bao giờ UUID hoặc chuỗi per-run.

Kiểm soát session

Adapter này không có tùy chọn session_id. Session được lấy từ phạm vi bao quanh, hoặc là uuid4().hex được tạo cho mỗi workflow run:

Tùy chọn

Human in the loop

Được ghi lại khi wait xảy ra bên trong một tool:
ctx.wait_for_event trong một plain workflow step không được ghi lại. Runtime bắt drop trước khi nó tới dispatcher, vì vậy step exits và re-runs sau này mà không có signal để key một pause. FunctionAgent pattern, mà LlamaIndex documents, waits bên trong một tool và được ghi lại đầy đủ.

Vấn đề thường gặp

Thêm additional_kwargs={"stream_options": {"include_usage": True}} vào LLM của bạn. Xem Token counts.
LlamaIndex không có usage field tiêu chuẩn. Adapter cố gắng sử dụng nhiều hình dạng đã biết, và một integration đặt tên các bộ đếm của nó thành cái gì mới sẽ không khớp với bất kỳ cái nào trong số chúng.Raw dict luôn ship, vì vậy hãy kiểm tra usage trong payload để xem nhà cung cấp của bạn gọi chúng là gì.Một usage được điền kèm theo các token columns trống là cố ý — nó tốt hơn một số sai lệch tự tin.
Đó là FunctionAgent loop, một set cho mỗi iteration. Filter by hook name trên dashboard. Step timings này thường là lý do để sử dụng adapter này thay vì một model-only.
Kiểm tra theo thứ tự này: instrument() chạy trước run; có một async with failproofai_sdk.session(): xung quanh await; llama-index-core là 0.14.23 hoặc mới hơn; FAILPROOFAI_SDK_STRICT=1 set, vì vậy một degraded hook raises thay vì bị swallowed.

Tiếp theo

Cách nó hoạt động

Pairs, ids, session lifecycle, và delivery.

Đọc một trace

Theo causality qua session bạn vừa capture.

Các framework khác

LangGraph, CrewAI, Pydantic AI, và custom agents.