Skip to content

behavior: emit tool_started/tool_finished (with args), action_taken, and text_delta from the tool-dispatch boundary #255

Description

@justrach

Phase 1 (#246, PR #252) reserves these four kinds but has no producer, so tool name/args never appear even in the local trace and an events-only scorer cannot reconstruct what the agent did. Verified wiring points: the tr.tool call sites at dispatch in exec.zig feed trace.zig's Tracer, which already holds the shared BehaviorTrace pointer.

Constraints from review:

  • Rollout order: the deployed collector rejects the reserved kinds (Phase 1 contract), so emitters must be LOCAL-ONLY until zigrepper#143 ships a versioned validation contract for them; the upload projection must skip these kinds regardless of mode until then.
  • Privacy design needed before implementation: tool arguments are plaintext in the local file, which changes the documented local privacy posture (docs/behavioral-trajectories.md says automatic events do not include tool arguments). The metadata projection for these kinds is undefined (isMetadataField has no tool-name/args fields): decide class-only vs name vs args per mode.
  • Enrich existing emitters at the same time: issue Port schema-harness behavioral trace schema + predict–verify loop into codegraff trajectories #246 wants turn_started to carry task state and run_finished an outcome summary.
  • scripts/score_run.py strict profile currently pins producers to the five lifecycle kinds; extend it with the new kinds in the same change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions