Repository navigation
feat: api tool agents with settled writes, complete tool calls and redacted records - #99
Merged
Merged
Conversation
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.
Adds API tool agents: Anthropic and OpenAI agents that act only through HTTP routes an environment declares, run as offline session tool actions.
tools(HttpTool/HttpRoute): a fixed loopback origin, method and path, and JSON shape. Requests are sent by a runner executing as the agent user in the offline namespace, with input supplied from a root-only file. Redirects are not followed. Inline session requests cannot declare tools.root_tool_settlehook proves the app has finished or dropped every write. Without that proof, the result has no verdict (error_type='unsettled_write'), whatever the score.stop_reason=tool_use; this check also covers the Anthropic computer-use agent. Cut-off, unfinished or unparsable responses are recorded as incomplete, with what arrived, and never acted on.tools,allowed_actionsandroot_tool_settleload from environment metadata.Authoring contract (see
docs/agents.md):Tests:
-n 4): 2678 passed, 4 failed, 1813 skipped.tests/test_tools.py,tests/agents): 345 passed, 2 baseline CLI-compat failures, 3 skipped.Baseline failures, which also fail on main: 2
test_cli_compatchecks against the locally installed CLIs, and 2 computer-use suite counts that read~/.deepgym/environments.