Skip to content

v0.3.4

Latest

Choose a tag to compare

@elronbandel elronbandel released this 06 Apr 10:30
· 70 commits to main since this release
5d3090d

Summary

  • Per-service runtime.json context propagation — replaces individual EXGENTIC_* env vars with a single runtime.json per service. Each agent/benchmark session bootstraps context, settings, and OTEL trace IDs from disk. Eliminates env var leakage and race conditions in parallel workers.
  • Session/Evaluator separation — Sessions self-load their own task data given just task_id. Evaluator exists only for run-level aggregation (list_tasks + aggregate_sessions). Removes N redundant evaluator spawns per run.
  • Per-session otel_spans.jsonl — when OTEL is enabled, each session automatically gets a local JSONL file with all spans (session lifecycle, tool executions, LLM calls). No Jaeger or collector required.
  • Env var allowlist — subprocess runners now forward only model-provider credentials and OTEL config (~3 vars) instead of the entire host environment (~45 vars).
  • Shared retriever for BrowseCompPlus — auto-enabled for venv/process/docker runners so sessions don't each load the 612MB search model.
  • Health check cache bypass — model accessibility check now skips LiteLLM cache to verify real connectivity.

Notes

  • EXGENTIC_OTEL_ENABLED=true now works standalone for local file export without a running collector. Set OTEL_EXPORTER_OTLP_ENDPOINT to also send to Jaeger/Tempo.
  • settings.cache_dir default changed from .exgentic (CWD-relative) to ~/.exgentic (home-relative), matching EnvironmentManager.
  • Removed APIs: context_env, init_context_from_env, agent_scope, benchmark_scope, Context.to_env, Evaluator.get_session_kwargs. These were internal and replaced by runtime.json propagation.
  • New Role.AGGREGATOR for run-level evaluator services (path isolation from session-level Role.BENCHMARK).