read_result
Access full content of a truncated result by its handle: search for text, slice character ranges, page by lines, or extract a JSON subtree.
Instructions
Use this to read a result that came back with truncated: true and a result_handle - the tool kept the whole result for 1 hour and returned a preview. operation:"search" finds a literal query with offsets and context, "slice" returns characters from an offset, "lines" pages by line, "json_path" reads one subtree of a JSON result (crawl_deep pages, batch results, a fetch_url JSON body). Not a fetching tool: never call the original tool again while the handle is valid, and not for a result that arrived whole. Cost: 1 credit. Example: read_result({handle: "res_…", operation: "search", query: "pricing"})
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | json_path: dotted keys and array indexes, e.g. "results[3].content" — not JSONPath | |
| query | No | search: the text to find, matched literally, case-insensitive | |
| handle | Yes | The result_handle a truncated result returned (res_… or a batch id) | |
| length | No | slice: characters to return (default 10,000); lines: lines to return (default 200, max 5,000) | |
| offset | No | slice: first character (default 0); lines: first line index (default 0) | |
| operation | Yes | slice: characters from offset; search: case-insensitive literal query with context and offsets; lines: a page of lines; json_path: one subtree of a JSON result | |
| max_matches | No | search: matches to return (default 20) | |
| max_inline_chars | No | Largest result to return inline, in characters of its JSON. Over it, the call returns a preview plus a result_handle for read_result instead of the whole result (default 40,000; env CRAWLFORGE_MAX_INLINE_CHARS) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| text | No | slice: verbatim view.slice(offset, offset + length) | |
| tool | No | The tool that produced the stored result | |
| view | No | ||
| _cost | No | Cost-transparency metadata (D3.5), present when injected into the text copy of the result | |
| lines | No | ||
| query | No | ||
| value | No | json_path: the subtree; null with a preview when it is over max_inline_chars | |
| handle | No | ||
| length | No | slice: characters returned | |
| offset | No | slice: first character returned | |
| matches | No | search: matches with 200 chars of context each side | |
| preview | No | ||
| has_more | No | slice/lines: more follows the returned range | |
| warnings | No | ||
| operation | No | ||
| truncated | No | search: more matches than returned; json_path: value replaced by a preview | |
| view_path | No | ||
| expires_at | No | ||
| first_line | No | ||
| line_count | No | ||
| char_offset | No | lines: view offset of the first returned line | |
| total_chars | No | Length of the full view | |
| total_lines | No | ||
| value_chars | No | ||
| total_matches | No |