The agent's tools get the second clock - #350
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
This was referenced Sep 5, 2026
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.
Closes #347.
entity_factstookatand nothing on the tool surface tookas_of. The store and the HTTP API have carried the record axis since #317 and #338; the agent was left atNoneas a separate decision. On the temporal benchmark's chat probe that decision cost seven of thirteen misses: every record-axis question came back as a narrated plan, because the agent had no tool that could ask it.What changes
entity_factstakesas_ofbesideat, threaded toentity_detail, which already accepts it. The tool'sdetailline names both when both are given —4 facts at 2024-08-01, as recorded by 2026-09-05— so the trace shows which clock answered.search_chunkstakesas_of, threaded toretrieval::hybrid(Retrieval reads the base as it was #338). Its description says in one clause what the retrieval module header says at length: full-text recall stays current, so hits are correct but may be incomplete.parse_when:YYYY-MM-DDor RFC3339, anything elseNone. A record-axis moment is usually a timestamp ("the instant the first batch finished"), which a date cannot hold.atcorrectly when a question names a date; this is vocabulary.MCP serves the same tool definitions, so its clients get both fields without a change there; the in-app MCP page documents them.
Two parameters, never one, for the reason 0019 gives: folded together they answer "the world in March as we understand it now" with "as we understood it then", and both look plausible.
Verified
A unit test on
parse_whencovering the date form, the timestamp form with surrounding whitespace, and two things that must not parse.cargo fmt --check,cargo clippy --all-targetsclean, tool tests 8/8. The benchmark's chat probe, re-run against this build (with #349) on the same base: 28 / 35 overall, up from 24 / 37 before the two fixes (the sheet moved one question into the known-gap column in between; the bench PR carries the details). On the record axis — the questions this change is for — 9 / 14, from 7 / 14. The model now passesas_ofand passes it as an instant when the question gives one (the trace shows2 facts as recorded by 2026-09-05, the answer repeats2026-09-05T02:43:53.382Z; the trace line itself rounds to the day, noted on #351). Of the five record-axis questions still missed:changes— and reading it would not have been enough, becausechangesprints the day and the correction landed the same day as the first ingest (The changes tool rounds the record clock to a day #351);Two more questions moved into the known-gap column while this was being measured (#345, and the undated-fact reading in #352); the chat probe cannot do better than the ledger on those.
🤖 Generated with Claude Code