Deliverables Tools
Search, retrieve, and register work products. Semantic search over previously produced charts, exports, data, and reports.
Deliverables are permanent records of work products β everything from auto-captured chart outputs to explicitly packaged analysis results. Unlike ephemerals (which vanish when their cache TTL expires), deliverables persist in the database indefinitely with encrypted-at-rest payloads.
deliverables.list@1
Search and list previously produced work products. When a query is provided, uses semantic search via pgvector embeddings β describe what youβre looking for in natural language rather than exact keywords. Falls back to standard text filtering when embeddings are unavailable.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type |
string | no | all |
Filter by type: "chart", "export", "data", "content", "report" |
query |
string | no | β |
Semantic search β describe what youβre looking for (e.g. "revenue analysis from last quarter") |
agent_id |
integer | no | β | Filter by producing agent ID |
limit |
integer | no | 20 | Max results (max 100) |
offset |
integer | no | 0 | Pagination offset |
Example β Semantic Search
{
"name": "data-grout@1/deliverables.list@1",
"arguments": {
"query": "customer churn analysis"
}
}
Example β Type Filter
{
"name": "data-grout@1/deliverables.list@1",
"arguments": {
"type": "chart",
"limit": 5
}
}
Response:
{
"deliverables": [
{
"ref": "del_a1b2c3d4e5f6",
"type": "chart",
"title": "Monthly Revenue Trend",
"summary": "Line chart of revenue by month for Q1 2026",
"created_at": "2026-03-15T05:00:00Z",
"agent_name": "Finance Agent",
"has_cache_ref": false
}
],
"total": 12,
"limit": 5,
"offset": 0,
"search_mode": "semantic",
"message": "12 deliverables found (semantic match). Use deliverables.get with a ref for full details."
}
Cost
0 credits β database/embedding query only.
deliverables.get@1
Retrieve a specific deliverable by its ref. Returns the full payload and metadata.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ref |
string | yes | β |
Deliverable ref (e.g. "del_a1b2c3d4e5f6") |
Example
{
"name": "data-grout@1/deliverables.get@1",
"arguments": {
"ref": "del_a1b2c3d4e5f6"
}
}
Response:
{
"ref": "del_a1b2c3d4e5f6",
"type": "chart",
"title": "Monthly Revenue Trend",
"summary": "Line chart of revenue by month for Q1 2026",
"payload": {
"image_url": "https://...",
"sparkline": "ββββ
β"
},
"metadata": {
"source_type": "auto",
"tool_name": "prism.chart"
},
"created_at": "2026-03-15T05:00:00Z",
"agent": {"id": 42, "name": "Finance Agent"},
"run_id": 123
}
Cost
0 credits.
deliverables.register@1
Explicitly package and register a work product as a deliverable for permanent storage.
Use this to promote ephemeral cached data or to package any result for later retrieval. Registered deliverables appear in deliverables.list even after the original cache entry expires.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
title |
string | yes | β | Human-readable title |
type |
string | yes | β |
"chart", "export", "data", "content", "report" |
summary |
string | no | β | Brief description |
payload |
object | no |
{} |
The deliverable content (data, URLs, etc.) |
cache_ref |
string | no | β | Reference to cached data to attach |
tags |
array | no |
[] |
Tags for categorization |
Example
{
"name": "data-grout@1/deliverables.register@1",
"arguments": {
"title": "Q1 Revenue Analysis",
"type": "data",
"summary": "Filtered and aggregated revenue data for Q1 2026",
"cache_ref": "rc_abc123",
"tags": ["revenue", "q1", "2026"]
}
}
Response:
{
"ref": "del_f6e5d4c3b2a1",
"type": "data",
"title": "Q1 Revenue Analysis",
"status": "registered",
"message": "Deliverable registered. Use deliverables.get with ref 'del_f6e5d4c3b2a1' to retrieve."
}
Cost
0 credits.
Lifecycle: Ephemeral β Deliverable
-
A tool call produces data and returns a
cache_ref -
The cached result is visible via
ephemerals.list -
You can inspect it with
ephemerals.inspect -
To keep it permanently, call
deliverables.registerwith thecache_ref - The deliverable persists in the database even after the cache entry expires
-
Find it later via
deliverables.listordeliverables.get
When to use which tool
| Situation | Tool |
|---|---|
| See what work products have been created |
list |
| Get the full content of a deliverable |
get |
| Save ephemeral data or results permanently |
register |