mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-09-24 20:00:30 +00:00
fix(tracing): never record a truncated ephemeral run; resolve the record path inside the guard; pin the window and the once
- An ephemeral buffer that dropped spans at its cap still uploaded the rest and recorded the run. The grader could not read that run whole, so it is no longer recorded (the upload still happens). Test added. - last_run_path() ran before the try in record_last_run; a cwd that vanished mid-run would have raised out of a function documented never to raise. It is inside now, with the same debug log and None. - Tests: the "recorded once" check counted an unchanged mtime, which proves nothing on a coarse filesystem — it now counts calls to record_last_run; the first-start/last-end fold across export batches had no value test — batches now arrive out of order and the ISO window is asserted. - Docs: the conversational-flows comment said "one trace link" for output that no longer exists; tracing.mdx now names .crewai/last_run.json, what it holds, who reads it, and when it is not written. en, ar, ko, pt-BR. 85 passed (test_session_trace_export + test_last_run); ruff and mypy clean. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -82,7 +82,7 @@ try:
|
||||
flow.handle_turn("Where is my order?", session_id=session_id)
|
||||
flow.handle_turn("What about returns?", session_id=session_id)
|
||||
finally:
|
||||
flow.finalize_session_traces() # one trace link for the whole chat
|
||||
flow.finalize_session_traces() # one trace for the whole chat
|
||||
```
|
||||
|
||||
## بث جولة
|
||||
|
||||
@@ -154,6 +154,8 @@ result = flow.kickoff()
|
||||
للتتبعات المرتبطة بحسابك، افتح [علامة تبويب التتبعات في لوحة تحكم CrewAI AMP](https://app.crewai.com/crewai_plus/trace_batches) لعرض تفاعلات الوكلاء واستخدام الأدوات واستدعاءات LLM.
|
||||

|
||||
|
||||
بعد تشغيلٍ وصلت نطاقاته (spans) إلى CrewAI AMP، يكتب crewAI الملف `.crewai/last_run.json` في مجلد المشروع: معرّف التنفيذ، وما إذا كان التتبع مجهولاً أو تحت حسابك، ووقت البدء والانتهاء، وعنوان AMP الذي أُرسل إليه. يقرأه الأمر `crewai eval` لتقييم آخر تشغيل دون نسخ أي معرّف. يتضمن `.gitignore` في القالب المجلد `.crewai/`؛ ولا يُسجَّل إلا التشغيل الذي صُدِّر كاملاً، ولا يُكتب شيء عند `CREWAI_TESTING=true`.
|
||||
|
||||
### البديل: إعداد متغير البيئة
|
||||
|
||||
يمكنك أيضاً تفعيل التتبع عالمياً عبر تعيين متغير بيئة:
|
||||
|
||||
@@ -82,7 +82,7 @@ try:
|
||||
flow.handle_turn("Where is my order?", session_id=session_id)
|
||||
flow.handle_turn("What about returns?", session_id=session_id)
|
||||
finally:
|
||||
flow.finalize_session_traces() # one trace link for the whole chat
|
||||
flow.finalize_session_traces() # one trace for the whole chat
|
||||
```
|
||||
|
||||
## Streaming a turn
|
||||
|
||||
@@ -154,6 +154,8 @@ Traces are uploaded only after a successful authenticated export or an explicitl
|
||||
For traces associated with your account, open the [Traces tab in the CrewAI AMP dashboard](https://app.crewai.com/crewai_plus/trace_batches) to view agent interactions, tool usage, and LLM calls.
|
||||

|
||||
|
||||
After a run whose spans reached CrewAI AMP, crewAI writes `.crewai/last_run.json` in the project directory: the run's execution id, whether it was traced anonymously or under your account, when it started and finished, and the AMP it was sent to. `crewai eval` reads it to evaluate the last run without you copying an id. The scaffold's `.gitignore` covers `.crewai/`; only a run exported whole is recorded, and nothing is written under `CREWAI_TESTING=true`.
|
||||
|
||||
### Alternative: Environment Variable Configuration
|
||||
|
||||
You can also enable tracing globally by setting an environment variable:
|
||||
|
||||
@@ -154,6 +154,8 @@ result = flow.kickoff()
|
||||
계정에 연결된 추적은 [CrewAI AMP 대시보드의 Traces 탭](https://app.crewai.com/crewai_plus/trace_batches)에서 agent 상호 작용, 도구 사용 및 LLM 호출을 확인하세요.
|
||||

|
||||
|
||||
스팬이 CrewAI AMP에 도달한 실행이 끝나면 crewAI는 프로젝트 디렉터리에 `.crewai/last_run.json`을 기록합니다. 실행 ID, 익명 또는 계정으로 추적되었는지, 시작·종료 시각, 전송된 AMP 주소가 담깁니다. `crewai eval`은 이 파일을 읽어 ID를 복사하지 않고도 마지막 실행을 평가합니다. 스캐폴드의 `.gitignore`는 `.crewai/`를 포함하며, 전체가 내보내진 실행만 기록되고 `CREWAI_TESTING=true`에서는 아무것도 기록되지 않습니다.
|
||||
|
||||
### 대안: 환경 변수 구성
|
||||
|
||||
환경 변수를 설정하여 전역적으로 추적을 활성화할 수도 있습니다:
|
||||
|
||||
@@ -82,7 +82,7 @@ try:
|
||||
flow.handle_turn("Where is my order?", session_id=session_id)
|
||||
flow.handle_turn("What about returns?", session_id=session_id)
|
||||
finally:
|
||||
flow.finalize_session_traces() # one trace link for the whole chat
|
||||
flow.finalize_session_traces() # one trace for the whole chat
|
||||
```
|
||||
|
||||
## Streaming de um turno
|
||||
|
||||
@@ -154,6 +154,8 @@ Os rastreamentos são enviados somente após uma exportação autenticada bem-su
|
||||
Para rastreamentos associados à sua conta, abra a [aba Traces no painel CrewAI AMP](https://app.crewai.com/crewai_plus/trace_batches) para visualizar interações dos agentes, uso de ferramentas e chamadas de LLM.
|
||||

|
||||
|
||||
Após uma execução cujos spans chegaram ao CrewAI AMP, o crewAI grava `.crewai/last_run.json` no diretório do projeto: o id da execução, se foi rastreada anonimamente ou na sua conta, quando começou e terminou, e o AMP para onde foi enviada. O `crewai eval` lê esse arquivo para avaliar a última execução sem você copiar um id. O `.gitignore` do scaffold já cobre `.crewai/`; só uma execução exportada por inteiro é registrada, e nada é gravado com `CREWAI_TESTING=true`.
|
||||
|
||||
### Alternativa: Configuração de Variável de Ambiente
|
||||
|
||||
Você também pode habilitar o rastreamento globalmente definindo uma variável de ambiente:
|
||||
|
||||
Reference in New Issue
Block a user