Add agentic solvers [4/n]#7
Conversation
afa0de7 to
8076dc7
Compare
| warning_limit: int = 45, | ||
| **agent_kwargs: Any, | ||
| ) -> Solver: | ||
| """Wrap basic_agent with a final-warning mechanism. |
There was a problem hiding this comment.
This agent with final warning mechanism was provided by Sunishchal from RAND. I preserved his contribution logic here. Let me know if you'd like to adjust/modify the agent's behavior
There was a problem hiding this comment.
Super interesting agent design! Might have to implement this for evals where a common failure mode is not submitting
Add the benchmark's agentic configuration: a `tools()` solver giving the model provider-native, server-side WebSearch and CodeExecution
Client-side agent running in a sandbox with tools. (inert not yet wired into SolverType/dispatch) Co-Authored-By: Sunishchal Dev <Sunishchal@users.noreply.github.com>
Expose `agentic` as a third SolverType Attach a Docker sandbox only for this new solver
ItsTania
left a comment
There was a problem hiding this comment.
No notes - looks good to me! The doco makes the three options provided easy to understand.
I ran uv run inspect eval lab_bench_2/lab_bench_2 -T tag=litqa3 --limit 1, with -T solver=tools and -T solver=agentic and works on my end.
Things to note:
- A warning to let us know whether web_search tool is provided in the agentic case could be useful (but isn't blocking). (I didn't have a key set, so the LLM went around this my using python to do its websearch expect it didn't parse the data right)
- Not related to this PR, but there might be some scoring issues we need to test for in a separate PR? One of my test cases happened to be marked as incorrect when I think it should be marked as correct (I'll upload image in a following comment)
| # Scientific Python stack for the agentic solver's sandboxed python/bash tools. | ||
| # Versions are pinned for reproducible builds. pydna constrains biopython, | ||
| # numpy, pandas, and scipy, so bump them as a set (re-resolve, don't pin | ||
| # individually). The base image is intentionally left unpinned: it must track | ||
| # the inspect tool-support protocol of the installed inspect_ai. | ||
| FROM aisiuk/inspect-tool-support |
There was a problem hiding this comment.
Thanks for the comment - this is useful.
Is the version of Inspect AI pinned (in the .toml right)? is it possible to pin to the corresponding docker image version and update when the Inspect AI version updates?
This is just a suggestion though - I don't image the aisiuk/inspect-tool-support image will change drastically
There was a problem hiding this comment.
I dug into this and decided to keep the base image unpinned, because version-tracking isn't actually possible for the image: it is only published as latest on Docker Hub, there are no per-version tags to pin to.
inspect_ai is locked to an exact version in uv.lock, and Inspect version-checks the sandbox's tool-support at startup, so a protocol mismatch would surface clearly
| warning_limit: int = 45, | ||
| **agent_kwargs: Any, | ||
| ) -> Solver: | ||
| """Wrap basic_agent with a final-warning mechanism. |
There was a problem hiding this comment.
Super interesting agent design! Might have to implement this for evals where a common failure mode is not submitting
Extra context - it seemed to fail at the scoring stage
edit: this might be a local set up issue? not sure - I should have the right API keys set... Just letting you know to check for something similar before you run your big runs!! |
Co-authored-by: Tania <120768997+ItsTania@users.noreply.github.com>
Interesting, which model did you use for the scorer? In the fallback case, the explanation field is the output of the judge. Since it is empty, it looks like the judge returned nothing, which was parsed to incorrect. Thanks again for the thorough review! |

This PR contains
Description
Add 2 new agentic solvers:
tools()solver giving the model provider-native, server-side WebSearch and CodeExecutionagentic()solver giving the modelpython/bash(and optionallyweb_search) tools in a Docker sandboxValidation
Automated Checks
make check
make test
Manual Tests