Skip to content

Prompting improvements - #68

Merged
MathisWellmann merged 8 commits into
mainfrom
prompting-improvements
Sep 1, 2026
Merged

Prompting improvements#68
MathisWellmann merged 8 commits into
mainfrom
prompting-improvements

Conversation

@MathisWellmann

@MathisWellmann MathisWellmann commented Aug 31, 2026

Copy link
Copy Markdown
Owner
  • Tighten up prompting and prefix nudges with nudge:
  • Increase maximum number of doc tool calls from 8 to 50
  • Extract out Error::to_nudge from Runtime::evolve_lane
  • remove first_line_of which just swallowed the error message too much.
  • include tool call history if max tool call error is triggered by rig, to make recovery easier.
  • Include EvolveFailure::UnimplementedFunction and provide backpressure for empty implementations.

@MathisWellmann
MathisWellmann force-pushed the prompting-improvements branch from 9446973 to 1d38fab Compare August 31, 2026 23:15
@MathisWellmann MathisWellmann self-assigned this Aug 31, 2026
@github-actions

Copy link
Copy Markdown

Summary

Adds an UnimplementedFunction error (stub/echo body rejection in validation.rs), centralizes nudging in Error::to_nudge, recovers partial transcripts from rig's aborted-run errors into the retry history, and raises the doc-tool turn budget to 50. Verified against the vendored rig/syn sources, the core logic is sound; remaining defects are leftover debug output and overpromising docs.

Issues

  • Major — symbiont/src/validation.rs:1251,1340,1459,1476: The diff adds eprintln!("DBG code: ...") into shared helpers assert_rejects_unsafe/assert_rejects_forbidden and two tests, so every unsafe/forbidden validation test prints debug noise to stderr. Remove these four leftover debug statements before merge.
  • Major — symbiont/src/error.rs:167-177, symbiont/src/runtime.rs:406-410: The new doc comments claim transcript recovery for PromptCancelled/UnknownToolCall lets a retry extend the aborted run, but Error::to_nudge (symbiont/src/error.rs:153) treats both variants as terminal, so the lane ends without a retry and their appended messages are never used. Correct the docs (or nudge those variants) to match behavior.

@MathisWellmann
MathisWellmann force-pushed the prompting-improvements branch from 1d38fab to 73db7d5 Compare August 31, 2026 23:30
@MathisWellmann
MathisWellmann force-pushed the prompting-improvements branch from 73db7d5 to 46e0153 Compare August 31, 2026 23:35
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Summary

The PR adds a new UnimplementedFunction rejection for stub/echo bodies, moves nudge construction into Error::nudge, and recovers aborted tool-loop transcripts into the retry history. Two major defects: the empty-body check contradicts the new partial-evolution contract, and the repeat-reset prompt now re-quotes the rejected code.

Issues

  • symbiont/src/validation.rs:177 (major)check_implementation_bodies rejects an empty body unconditionally, even when the declared default body is itself empty (fn f() {} is legal in evolvable!). A host with an empty default can then never land a partial evolution that keeps it empty, contradicting the function's own doc ("A verbatim echo … only rejects when no declared function changed") and the new system_prompt.rs line "the others may keep their default bodies"; the doc's "panics or fails to compile" rationale is also false for {}. Fix: only reject an empty body when the stored default for that function is non-empty, treating empty==empty as an echo.
  • symbiont/src/runtime.rs:1418 (major) — The repeat-reset prompt now embeds the full error (e) where first_line_of(&e) was deliberately used, because for CompilationFailed the display includes rustc output that quotes the rejected source — exactly the echo source the reset is meant to stop the agent from repeating; the backpressure_repeat.rs assertion that the reset prompt must not quote the rejected code was deleted along with it. Fix: keep a code-free summary in the prompt (restore first_line_of or equivalent) and use the full error only in the trace event.

@MathisWellmann
MathisWellmann merged commit eedaa54 into main Sep 1, 2026
6 checks passed
@MathisWellmann
MathisWellmann deleted the prompting-improvements branch September 1, 2026 09:27
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