Skip to content

[WIP] Prototype selectable native tool-calling runtime on v2.8.4 - #4310

Closed
JasonW404 wants to merge 3 commits into
mainfrom
feature/v284-native-toolcalling
Closed

JasonW404 wants to merge 3 commits into
mainfrom
feature/v284-native-toolcalling

Conversation

@JasonW404

@JasonW404 JasonW404 commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Adds an opt-in NEXENT_AGENT_RUNTIME=toolcalling runtime based on smolagents ToolCallingAgent alongside the default CodeAgent. Existing authorized tools work as native calls and as prebound functions inside optional restricted code_execution; persisted Agent Definitions require no migration.

The native loop owns structured provider history, streamed call assembly and correlated results. It reuses Nexent model configuration/retries/concurrency, tool factories, sandbox lifecycle/bridge, context selection, observer events and tracing. NL2Agent/NL2Skill retain CodeAgent for their platform authoring protocols.

Validation:

  • 979 relevant unit tests passed in isolated module runs; the two new runtime modules have 99.10% statement and 94.90% branch coverage locally.
  • 17 real-service D3 checks passed: local/Docker direct, code, programmatic and hybrid paths; four provider families; MCP; managed child; error recovery; step limits; live stream cancellation.
  • 3 deployed HTTP/SSE checks and 1 branch-image/source/health check passed. Built-in-browser hybrid debug verified separately.
  • The same persisted Agent completed plain/hybrid workloads under both runtime selections. Phoenix MCP inspection verifies native histories and nested tool spans. Immutable image/source identities and sanitized evidence are under docs/experimental-native-runtime/evidence/.

This remains an architecture spike, not production parity. Native current-run compaction and multimodal projection are incomplete; dynamic MCP container journeys, live planning/verifier/clarification journeys and concurrent child lifetimes remain unverified. Provider reasoning controls/fields are recorded independently from tool support, including inconsistent gateway observations. Both runtimes retain the existing unauthenticated-run HTTP 500 defect while denying execution.

Based on remote tag v2.8.4 (c43d2d995b15c9005c0d736cd60200a22305de74). Final experimental deployment stays on the host by explicit user preference; Nexent-Test remains stopped. Investigation, design, compatibility, validation and develop migration findings are included in the five runtime documents. No production migration or dependency upgrade is proposed.

Current test-only head is 1ba6aa0a490945dd92a510e877b16ea7b4293222. Tested product source matches commit 128f22ee1d45e89ae77e8029544a1add37a5e562; final main image sha256:cd0e5604e99984eb0f21db8c01703100861387183299538f923247f0b37a51e5. Existing CI filters omit main-targeted PRs; equivalent branch workflows were dispatched manually without configuration changes.

Final CI on 1ba6aa0a4: unit tests and coverage upload, amd64/arm64 image builds, changed-source copyright checks and CodeQL passed. Codecov PR report reports 96.96312% patch coverage, above the workspace 90% gate; 4 missing and 10 partially covered lines remain in the native loop. No full production parity is claimed.

@JasonW404 JasonW404 changed the title [WIP] Experimental native tool-calling agent runtime [WIP] Prototype selectable native tool-calling runtime on v2.8.4 Nov 9, 2026
@codecov

codecov Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.96312% with 14 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
sdk/nexent/core/agents/native_runtime.py 96.74% 4 Missing and 10 partials ⚠️

📢 Thoughts on this report? Let us know!

@JasonW404 JasonW404 closed this Nov 9, 2026
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.

1 participant