Cài đặt
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
async with và with 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ó.
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á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_id là FunctionAgent.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ụ
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_id là FunctionAgent.name khi bạn đặt một, còn không thì là tên lớp workflow.
AgentWorkflow, tên đó cũng là tên mà mỗi handoff được ghi lại dưới:
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:
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ọnsession_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
Mọi token count đều là null
Mọi token count đều là null
Thêm
additional_kwargs={"stream_options": {"include_usage": True}} vào LLM của bạn. Xem Token counts.Usage được điền nhưng các token columns trống
Usage được điền nhưng các token columns trống
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.Timeline full của setup_agent và parse_agent_output
Timeline full của setup_agent và parse_agent_output
Đó 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.
Không có gì được ghi lại
Không có gì được ghi lại
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.

