Three ways to get a series
Nothing is fetched or derived by default:
fetch and observations are opt-in because they cost time and LLM calls.
Supply a series with remember
keyidentifies the series in the dataset. Sending the same key again adds points to it.- Points are
[time, value]pairs: RFC 3339 times, finite numbers, any order. - The
anchorssay what the series is about. The entity does not exist when you make the request (it is what the extraction finds in the text), so you name it with a selector,{name, type}, and gligabao looks it up once the text has been stored. If the text never named Apple, the entity is created. A series with noanchorsis anchored to the artifact of the request.
series item per series, with its id, the number of points, its stats and the anchors that were stored. See Anchors for artifacts, edges, IDs, role, window and on_unmatched.
Let gligabao fetch it
Register a provider when you start the server: a callback that fetches the data, and a description in plain language of when it applies. gligabao holds no provider logic of its own, so credentials, symbols and rate limits stay in your program.AAPL). It prefers to skip an entity it is not sure of. The series is then stored and anchored to the entity and to the artifact it came from.
- The period is 30 days before the
reference_timeand nothing after by default, so a memory never contains the future of its event. Setafterif you want an event window. - A failure while fetching never fails
remember; it is reported in the response. - Write the
Descriptioncarefully: the whole decision rests on it.
Name, Description, QueryFormat, Fetch, validation, limits) is in Providers.
Stats
Whenever points are written, gligabao computes a summary of all the points of the series, in Go (an LLM never does): count, first and last value, min, max, mean, change, percent change,trend (up, down or flat) and the largest_move between two consecutive points. It is returned with the series and stored with it. See Stats.
Turn a series into facts
A series is not in the graph, so by defaultquery does not see it. With timeseries.observations: true, remember writes a short text from the stats of each series it stored, and runs it through the normal pipeline. The text is generated by Go from the numbers, so it only says what they say:
series_observation artifact links them back to the series. Observations are opt-in, at most 10 per request. See Observations.
Read a series back
GET /v1/gb/timeserieslists the dataset’s series, without points.GET /v1/gb/timeseries/{id}returns one series with its points, between optionalfromandto.
Things to know
- A supplied series is never clipped. If it runs past the
reference_time, the memory contains the future of the event. Clip it before sending if that matters. Fetched series are clipped to their period. querydoes not use series yet, and series are not embedded.- A series has at most 100,000 points per request; send more in several requests.
- Times are UTC, and
unitandfrequencyare labels.