feat(examples): add coding agent harness example - #886
Open
Agentic-JJ-Web3 wants to merge 2 commits into
Open
Conversation
Author
|
Opened #886 with steps 1–3. I made a few calls in the absence of answers to my questions above — they're listed in the PR description, happy to change any of them. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #885. This is the first of three PRs — steps 1–3 of your outline
(harness loop, basic tools, running it with tests and the Burr UI). CLI and
permissions follow separately.
What's here
examples/coding-agent/— an agent that reads files, writes files, lists adirectory, and runs shell commands, looping until the model answers without
requesting a tool or the step budget runs out.
The graph is
human_input → create_prompt → call_llm, with four bound toolactions fanning out of
call_llmand looping back to it. Each tool is boundseparately rather than dispatched from a registry, so the Burr UI shows which
one ran at each step.
Decisions I made without you
You hadn't replied yet, so these are assumptions rather than agreements —
happy to change any of them:
notebook.ipynbis a required file andhas to execute, so the example falls back to a client replaying a fixed
sequence of tool calls when
OPENAI_API_KEYisn't set. Real OpenAI clientwhen it is.
run_bashis not sandboxed. File paths are confined to a workspacedirectory, but a shell command can
cdout. The README says so plainly,which leaves step 5 something concrete to fix.
list_files, since an agent that can'tsee the directory can't orient itself.
are dropped. Documented as a known simplification.
Notes
validate_examples.pypasses forcoding-agent.required. Thetool-callingexample marks all of them, which misreports optional args —happy to open a separate issue for that.
examples/hello-world-countercrashes atapp.visualize()unless theGraphviz binary is installed, and passing a stale
app_idafter clearing~/.burrraises a pydantic error onPointerModel.app_id. Both separatefrom this PR; can file them if useful.