Glossary
Every term tide uses, in one place. Terms link to the page that owns them.
Tasks and runs
| Term |
Meaning |
| task |
A stock Harbor task directory: task.toml, instruction.md, environment/, tests/, and a reference solution/. |
| episode |
One run of one task under one agent; tide's unit of measurement. Equals one Harbor trial. |
| trial |
Harbor's name for the same thing. Every episode's uri points at its trial directory, so results stay auditable. |
| agent, harness |
Whatever does the work inside the task container: claude-code, codex, your own BaseAgent, or a plain script. See running agents. |
| oracle |
Harbor's built-in agent that runs a task's reference solution/. Used to prove a task's pipeline end to end. |
| autoresearch |
One open-ended optimization problem with a continuous score, worked at for a whole budget, with a judge scoring every submission. One of the two regimes. See design. |
| session |
One task's run against its judge, from the first submission to finalization. The final judge locks it, after which submissions are refused. |
| regime |
The shape of the work being measured: autoresearch (one open-ended problem) or a stream of tasks. Either regime works with any form of persisted state. See design. |
| self-evolving, continual learning |
Something the agent learned persists past the run that produced it, as memory, skills, an evolved harness, or weights. It can show up in either regime, and tide measures its effect on the scores. |
Scoring
| Term |
Meaning |
| judge |
In autoresearch tasks, the HTTP sidecar that holds all scoring code and data and scores every submission. The agent can reach it and nothing else. |
| submission |
One candidate solution POSTed to the judge. Each task caps how many are allowed. |
| final judge |
An optional final.py on the judge with hidden tests. Runs once, on the best submission, and locks the session. |
| verifier |
Harbor's scoring step at the end of a trial: for judge tasks it asks the judge for the final grade; for pass/fail tasks it runs the task's tests/. |
| reward |
The trusted score of an episode, as reported by the verifier. |
| reward hacking |
Raising the score without doing the task: reading the scoring code, editing the log, or overfitting to a scorer the agent can query without limit. The judge holds all scoring code and data in its own container, the submission budget caps how often the agent can probe it, and final.py grades the best submission once on hidden tests. See design. |
| trace |
Per-submission scores from the judge, stored next to the episode row; the raw material of the anytime curve. |
| budget |
What an episode may spend: time, evals, or tokens. Evals need a judge, so that axis applies to autoresearch tasks. Set on the run, delivered as TIDE_* env vars, recorded as budget_* tags with actuals in used_* columns. See budgets. |
Results
| Term |
Meaning |
| Lab |
A directory holding the results store; Lab.run executes one episode into it. See get started. |
| store |
The append-only SQLite table behind a Lab. Two row kinds: episode and trace. |
| tags |
Free-form dimensions on every row (model, suite, budget, stream). Any key you pass becomes a column; metrics document the columns they expect. |
| key |
An episode's stable id, derived from (task, agent, tags, overrides) or passed explicitly. A key that already has a row is skipped, which is how re-running resumes. |
Streams
| Term |
Meaning |
| stream |
An ordered task list run under one agent with a state directory carried between tasks. See streams. |
| position |
An episode's index within its stream, recorded as a tag. |
| state directory |
The carried directory, mounted into every task's container as $TIDE_STATE_DIR. The agent writes whatever it wants its future self to know; tide never reads it. |
| snapshot |
The state directory saved after each position. The next position starts from it, which makes starting states deterministic and resume clean. |
| variant |
A digest of a stream's setup (agent, tags, budget, overrides). Together with the name and the task list it decides which state and keys a stream gets, so two streams that differ in any of them stay separate. |
Metrics
| Term |
Meaning |
| anytime |
The property that a run has a usable answer at every moment, improving as it goes. The anytime curve is the best-so-far score over time. See metrics. |
| anytime score |
The anytime curve's time-average, from metrics.auc. Comparable across runs only when they are averaged over the same window. |
| learning curve |
Score over stream position, the continual-learning progress curve. Not the training-set-size curve the term means elsewhere in ML. |
| transfer |
What carrying state was worth: a stream task's score minus the same task run on its own. CL-Bench's gain metric, not the forward transfer of the continual-learning literature. |
| forgetting |
How much a revisited task degraded: the best of its earlier visits minus its last. Positive means the agent forgot. |
Environment
| Term |
Meaning |
| allowlist |
network_mode = "allowlist" in task.toml: the container reaches the hosts in allowed_hosts and nothing else. The usual setting is the judge alone. |
| allowed_hosts |
The hosts a task permits. extra_allowed_hosts widens the set for one run without editing the task. See running agents. |
| sidecar |
A second container beside the agent's, in the same task. The judge is one, and so is the process that enforces the allowlist. |