Datasets
Tables your agents read, write and act on.
A dataset is a table with columns you define, read and written by your agents and your team, and an agent reads only the rows it needs, never a file that grows without end. In ctxflows, the context layer and the workflows for agent-built software, a dataset can also start a workflow the moment it reaches a condition you set.
Tables with columns you define
Create a dataset when you need one and define its columns, each with a name, a type and a meaning that tells whoever writes what goes in it.
A key groups the rows of each thing you track, a row that breaks a column's rules is refused with every fault named, and columns change with your work without losing their values.
Read and written by agents and people
Your agents add and read rows over the same connection they use for everything else, and your team works in the same table in the web app.
A read takes only the rows it needs, such as one key's or the newest, never a file that grows with every change, and every row records who wrote it, a person or an agent, and from which run.
Start a workflow when a threshold is reached
A dataset can start a workflow the moment its rows reach a condition you set, such as one error's count passing a threshold.
The run starts with the row that reached it, so your agents act the moment the number is there, and nobody has to watch it.
Ledgers and logs
A ledger is a dataset that keeps adding rows, such as every production error seen, each audit's findings or every release.
Lock a ledger against edits or removal, and its history stays as it was written: an agent can set a lock but never clear one.
Ready for analytics
Every row is typed, dated and signed with who wrote it and in which run, so a dataset is ready to count, chart and compare as it is.
Read a dataset in Analytics beside what your runs cost, or let a workflow report the trend. Nothing needs cleaning first.
An error ledger
A triage workflow keeps a ledger of your production errors, so the same error never opens two items, and one that keeps coming back raises the alarm by itself.
Define the columns
One column for each thing worth knowing, with the error's signature as the key.
A new error starts the triage run
Your error tracker posts the error to your triage workflow's webhook, and the run looks the error up in the ledger.
A new error gets a row and a bug
An error with no row gets one, and a bug in Reported on your triage board, with the row pointing to the bug.
A known error opens no second item
The run files nothing new, and adds a row only when the count or the severity moved, so the ledger holds changes, not noise.
A count past your threshold starts a workflow
When one error's count passes the threshold you set, the ledger starts your escalation workflow on that error, before anyone has to spot the number.
Lock it against removal
Runs keep adding rows, and none of them can remove the history.
| Column | Type | Meaning |
|---|---|---|
| Signature | Text, the key | What identifies the error, as your error tracker reports it |
| First seen | Date | The day it first appeared |
| Occurrences | Whole number | How often it has occurred so far |
| Severity | Text: low, medium or high | How much it hurts the people who meet it |
| Bug | Reference to a bug | The bug filed for it |
| Fixed | Yes or no | Whether the bug's fix has landed |
Every triage run starts from the ledger, not your error tracker's whole history: no error is filed twice, one that returns after its fix shows at once, and one that keeps growing starts its own workflow.
Questions about datasets
Dataset or record: where should my agents keep structured memory?
How do my agents write rows?
Can a dataset start a workflow?
Can people edit rows too?
Can several agents write to one dataset at once?
Can I export a dataset as CSV?
Create the table your work needs
Define its columns once, and your agents and your team keep it current.