What it does
Reads an image you shared and ties it to your workspace: the text in it, related code, docs, decisions and lessons, and what to do next, with citations.
What it does not do
It does not do these. A task like them is declined, and a declined run is free:
- Making documents, PDFs, slides or new images from an image.
- Reading media that is not an image, such as PDFs, audio or video.
- Answering questions that are not about the image.
- Browsing the web, or changing anything in the workspace beyond one optional note.
Real runs
What Lens did with a real input: the input, the result (shortened where it is long), how long it took, what it cost, and where it ran. Each live run used public or demo material only. An example marked as from the eval suite is not a live run.
Live runs fail at the moment: the demo run on 2026-10-27 timed out waiting for the model (model_timeout), and a failed run costs nothing. Until that is fixed, the example here comes from the agent's eval suite.
Live attempts that failed (no charge): task 22ab56c3-c8a9-44f5-951d-42281c75d5f9, 2026-10-27 17:25 UTC, model_timeout.
The agent's offline eval suite: its real program, against a fake ContextStream, a scripted vision reply and fixtures, with no network. Not a live run; the image in the fixture is a placeholder, so it is not shown.
- evals/lens/cases.jsonl in the Slipstream repository
Input
{
"media_id": "0e0e0e0e-0000-4000-8000-000000000003",
"question": "Which test is failing and why?"
}
Result
The token refresh test fails with a 401.
What the image is
terminal: The token refresh test fails with a 401.
Text read from the image
FAIL test/auth.test.ts > refreshes tokens
Expected 200, received 401
Answer
test/auth.test.ts, refreshes tokens, gets 401 where it expects 200.
Related in the workspace
- test/auth.test.ts:12: Relates to what the image shows.
Next steps
- Check the refresh token's expiry.
Checks: 4 of 4 passed
- Passed: image_read: 68 characters of text and 2 entities.
- Passed: workspace_lookups: 6 of 6 lookups answered; 1 items found.
- Passed: citations: Every related item is one that was found in the workspace.
- Passed: workspace_context: 0 context items from ContextStream for this job, about 0 tokens.
Provenance
- Eval case
evals/lens/cases.jsonl, terminal-test-failure- Depot run
lh9rrpq6ff
Example inputs
Inputs from the agent’s own job contract, each checked against its input schema.
A screenshot of a stack trace: Lens reads it, finds the failing code, and the decisions and lessons about it.
{
"media_id": "00000000-0000-4000-8000-000000000001",
"question": "Why is the API failing?"
}
ss run lens media_id=00000000-0000-4000-8000-000000000001 question='Why is the API failing?'
A whiteboard photo: Lens transcribes it and links it to the docs and decisions it matches.
{
"media_id": "00000000-0000-4000-8000-000000000002"
}
ss run lens media_id=00000000-0000-4000-8000-000000000002
Declined: making files is not Lens's job.
{
"media_id": "00000000-0000-4000-8000-000000000003",
"question": "Make a PDF of this"
}
ss run lens media_id=00000000-0000-4000-8000-000000000003 question='Make a PDF of this'
Where it runs
Model agent. A program on ContextStream’s model proxy, with a short-lived token that acts for you in one workspace.
It may run for up to 1 min before it is stopped.
| ContextStream scope | What it lets a run do |
|---|
media.read | Read a media record, its download link and its previews, and fetch the bytes. |
|---|
search.read | Search the workspace’s code, by keyword and by meaning. |
|---|
memory.read | Search memory, and read decisions and lessons. |
|---|
memory.write.note | Save one note per run. |
|---|
context.read | Read the run’s context pack from the workspace. |
|---|
context.feedback | Mark the context items a result cited as helpful. |
|---|
model.invoke | Call models through ContextStream’s model proxy, under the run’s credit cap. |
|---|
Evals
6 of 6 offline eval cases pass for version 0.2.0 (baseline saved 2026-10-17). Offline means fakes and fixtures, with no network: the cases check what the agent guarantees, such as declining work that is not its job. They are not measurements of live runs; the live runs above are.