ai.search-files: Investigate a ZIP archive with a question and return an answer plus file citations. Read-only: the step opens files in the archive and never writes back. ZIP is the only accepted format in this version. Optionally scope the search to a folder prefix and cap how many files and investigation turns may run.
Use ai.search-files when a run already has a ZIP bundle and you need a cited
answer from the files inside it — for example “which contracts mention
assignment?” or “is there a signed amendment in this packet?”. The step is an
investigation primitive, not an extractor: it does not return structured
fields from a schema, and it does not modify the archive.
Point archive at a workflow file input ({ "$fileId": "file_..." }) or a
previous step’s file output. Nested ZIP members stay opaque until you extract
them and pass the extract output into another search or list step. Encrypted
ZIP entries are rejected. See Upload files for hosted
multipart, on-prem, headless, and Agent sandbox limits.
Git-backed Agents do not run this step. ZIP attachments in a sandbox are
inspected with filesystem tools, not ai.search-files.
Citations and grounding
Treat the three outputs as different kinds of evidence:- Inspected-path guarantee.
citations[].pathis always a file the step actually opened. It is taken fromfilesInspected. The step never cites a path it did not read. - Excerpts are copies. When
citations[].excerptis present, it is a contiguous substring copied from the inspected file text. Invented or paraphrased excerpts are dropped; the citation then keeps the path only. - The answer is LLM-generated. Citations constrain which files and excerpts
may be returned. They do not prove every sentence in
answer.
Configuration
Configuration goes inside the step’swith: block.
string
required
Template expression or file reference for the ZIP archive to inspect. ZIP is the only accepted format in this version.
string
required
Natural-language question to answer from files inside the archive.
string
Optional folder prefix inside the archive. When set, only files under this path are in scope.
string
Provider ID from eigenpal.config.yaml. Falls back to the tenant default LLM provider when omitted.
string
Model override (advanced).
"none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"
Reasoning effort for models that support it. Omit to use the selected model’s default.
integer
default:"12"
Maximum investigation turns. Default 12, capped at 50.
integer
default:"50"
Maximum files the step may open. Default 50, capped at 200.
Output
The investigation answer. Citations point at inspected files; the answer text itself is model-generated.
Citations to files the step inspected. Excerpts, when present, are copied from inspected text.
Archive-relative paths of files the step opened during investigation.