Skip to content

feat(eve): spill oversized tool outputs to sandbox - #2563

Open
ebramanti wants to merge 1 commit into
vercel:mainfrom
herd-labs:feat/tool-output-overflow
Open

feat(eve): spill oversized tool outputs to sandbox#2563
ebramanti wants to merge 1 commit into
vercel:mainfrom
herd-labs:feat/tool-output-overflow

Conversation

@ebramanti

@ebramanti ebramanti commented Aug 25, 2026

Copy link
Copy Markdown

Summary

Closes #905. A single tool response can currently consume most of model history before compaction can act. This adds an opt-in agent policy that writes oversized text and JSON results from eve-controlled tools to the session sandbox and gives the model a bounded file reference, while preserving the complete output on action.result. Successful spills emit a durable tool.output.spilled event and a bounded agent.tool.output OpenTelemetry span; a deterministic spillId supports deduplication across durable retries. Existing behavior remains unchanged when the policy is omitted; control results remain inline, and provider-executed server tools remain outside the first-call boundary.

Validation

Focused conflict-resolution coverage passed across protocol, manifest, overflow, task delivery, instrumentation, tracing, and structural limits. The complete unit suite passed with 7,261 tests and 1 skipped; the integration suite passed with 674 tests. Formatting, lint, type checking, mechanical invariants, and documentation validation passed. A deterministic sandbox E2E eval covers the full action output, model-facing reference, and subsequent file read; it will run in CI because E2E suites cannot run locally.

Checklist

  • This change was requested or approved by a maintainer
  • I ran the relevant checks from CONTRIBUTING.md
  • I added tests and documentation where relevant
  • I added a changeset if this touches the published eve package
  • DCO sign-off passes for every commit (git commit --signoff)

Diff size

Docs — 6 files · +182 / -16

Documents the opt-in API, model-history behavior, spill event and trace contract, retry semantics, release impact, and scope boundaries.

Implementation — 34 files · +760 / -66

Propagates the policy from authored configuration through compilation and runtime resolution, applies it at the common model-history boundary, emits a durable sideband event after successful sandbox writes, and records bounded trace metadata. Additive extension epochs retain compatibility for existing authored capabilities that consume the stream-event union.

Tests — 21 files · +956 / -17

Covers byte accounting, serialization, deterministic references and spill identities, exemptions, persistence boundaries, task and subagent delivery, protocol events, instrumentation, tracing, configuration propagation, and retained extension contracts. The sandbox fixture additionally proves that raw action output stays complete while the model can read the overflow file.

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

@ebramanti is attempting to deploy a commit to the Internal Playground Team on Vercel.

A member of the Team first needs to authorize it.

@ebramanti
ebramanti force-pushed the feat/tool-output-overflow branch 3 times, most recently from a22213b to d3b5f57 Compare August 27, 2026 16:14
Signed-off-by: Edward Bramanti <edward@bramanti.org>
@ebramanti
ebramanti force-pushed the feat/tool-output-overflow branch from d3b5f57 to c88e8ce Compare August 27, 2026 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a configurable model-facing output budget for tools

1 participant