A self-hostable, rewindable virtual environment for agents that auto-snapshots the environment, rolls back to any node, and branches so an agent can explore several approaches and keep the winner.
agentenv provides 7 tools with clear, domain-specific naming (verb_noun pattern: head, log, branches, show, diff, checkout, delete). Descriptions are present and contextual (avg ~120 chars), explaining WHEN to use each tool. However, input schemas are minimal: most tools accept only string parameters with basic descriptions. Output schemas are not documented. Error handling is not visible in the provided code. The tools are well-composed (each does one thing) and follow a logical DAG-navigation pattern, but lack the structured output documentation and parameter validation guidance expected of production-grade tools.
List branch tips (distinct explored end-states). Use this when you've explored multiple approaches and want to compare or pick one.
Roll the whole environment back to a node (accepts node id, ID prefix, or tag). The agent's process will be killed and restarted from the restored environment if running under `agentenv supervise`.
Delete a node from the history (accepts node id, ID prefix, or tag). Its children re-parent to its parent, so descendants survive. Refuses to delete the current HEAD (check out another node first) or the only node. Use to prune dead-end explorations.
List the files that differ between two nodes. Useful for comparing alternative approaches.
Return the current HEAD node id of the agentenv environment. Use this to know where the time-travel cursor is right now.
List every node in the agentenv commit DAG (id, parent id, message, whether it is HEAD, whether it is a branch tip). Use this to find a past state to roll back to.
Output schemas not documented. Tools return structured data (node lists, file diffs, branch info) but LLMs cannot see the expected response structure. This forces LLMs to guess field names and types, risking parsing errors and wasted tokens.
Parameter descriptions lack format/constraint guidance. 'node' parameters accept 'node id, ID prefix, or tag name' but no regex pattern, length limits, or examples are provided. LLMs cannot validate input before calling.
No error handling guidance visible. Tools like checkout and delete are destructive (REVERSIBLE/WRITE risk) but no error messages, recovery steps, or confirmation patterns are documented. Agents cannot know what to do if a checkout fails.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
List the files a given node changed vs its parent (like `git show --stat`). Helps identify which past commit introduced a regression.
No pagination or result-limiting guidance. agentenv__log and agentenv__branches may return large DAGs. No limit, offset, or cursor parameters visible. Large result sets will blow context windows.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not present in schema. Risk levels are declared in metadata but not in the tool definitions themselves, limiting client-side safety checks.