Skip to content

Glossary ​

Naming rule of this project: the product layer is called Harness (formerly "Agent"). The protocol names AgentAPI and AgentBackend are contracts and are kept as-is — renaming them would break clients and adapters. Every page on this site follows this rule, and a scan script (scripts/naming-scan.sh) checks it.

Product vocabulary ​

TermDefinitionFirst-hand source
KeelThe project: a stateless, multi-tenant agent runtime base.README.md
CoreThe contract kernel + event ledger + service graph + loadout + storage + handoff. The part that cannot be swapped.docs/SERVICE-GRAPH.md, docs/KERNEL.md
Harness (原 Agent)The product layer over the Core: sessions, turns, tools, approvals, plugins, triggers, sub-agents, and the client surfaces. The process is keel serve.internal/agentext/doc.go, docs/HARNESS.md
AgentAPIThe /v1 product API contract (alias: Harness API). Name kept; it is a wire contract consumed by the web UI and TUI.internal/agentapi/api.go:43
AgentBackendThe protocol a foreign agent runtime (for example DSH) implements to be driven as an external backend. Name kept.internal/gateway/protocol.go, docs/DSH-REFERENCE.md
DSHDeepSeek Harness — an external reference for the plugin model and an external-agent target. A reference, not this project's source of truth.docs/DSH-REFERENCE.md

Session and run vocabulary ​

TermDefinitionSource
LedgerThe append-only event log; the only truth. Projections and checkpoints are derived from it.docs/KERNEL.md
Event kindThe closed vocabulary of durable facts: user.message, assistant.message, tool.result, compaction, run.started/run.failed (reserved), run.finished, external.event.internal/kernel/validate.go:36
seqThe per-session event sequence number; the cursor clients resume from (id: <seq>).internal/httpapi/server.go:628
SessionA conversation: one event log, at most one writer at a time.docs/KERNEL.md
Run / attemptOne execution of a session's pending work. A run can be attempted several times (retry); each attempt is claimed, fenced and settled.internal/kernel/lease.go, internal/agent/worker.go:223
Claim / lease / epochThe kernel's ownership mechanism: an owner receives a lease with a fencing token owner@epoch; stale owners are refused.internal/kernel/lease.go:16
TurnOne model request/response cycle inside a run; a turn may include one tool batch.internal/loop/loop.go
inputSeqsassistant.message.payload.inputSeqs — the user-message sequence numbers a request presented to the model. The consumption fact: an input is answered iff a completed assistant message references it.internal/agent/runner.go:707
Read watermarkThe highest committed seq an attempt loaded; input above it re-queues the session at settle.internal/agent/worker.go:399
delivery: queue / guideHow a committed input is consumed: queue waits for the next claim; guide is injected into the running turn at a drain point (and degrades to queue when no attempt is live, visibly in the event).docs/KERNEL.md §2
PartialA token-level delta streamed beside the log; never stored, never replayed, carries no cursor.internal/httpapi/partials.go:5
CompactionReplacing the oldest transcript span with a committed summary event; history is never edited.internal/compaction/compact.go
HandoffCross-process succession: new runtime, drain the old one, new epoch, continue from the ledger.docs/HANDOFF.md
DecisionThe approval/question primitive: durable row, idempotent answer, bounded timeout. Not a kernel event kind.internal/agentext/decisions.go:233
TriggerA scheduled or webhook-started turn (interval/cron/webhook) with idempotency keys and an audit trail.internal/agentext/triggers.go:30
Sub-agentA child session spawned by a tool or API call, with a budget and a structured result.internal/agentext/subagent.go:44

Assembly vocabulary ​

TermDefinitionSource
Service graphThe assembly of first-party services: capability-based dependency resolution, ordered activation, reverse-order teardown.internal/servicegraph/lifecycle.go:21
LoadoutAn immutable snapshot of the assembled service set {id, revision, version, summary, services}, pinned per run.docs/LOADOUT.md §1
GenerationA counter incremented once per reassembly; instances from an old generation serve in-flight runs and are retired afterwards.internal/servicegraph/engine.go:270, docs/LOADOUT.md §4
SelectionThe model/provider choice recorded with a run; validated against the current generation's provider configuration.internal/modelcfg, internal/agent/runner.go:321
PluginAn extension of the Harness. Today: an in-process Go value (agentext.Plugin). Planned: a plugin.yaml package of one of three kinds.internal/agentext/plugin.go:67
plugin.yamlThe planned plugin manifest (id/version/kind/engines/provides/requires/permissions/entry/source).planned: keel-plugin-core spec
in-process / sidecar / webviewThe three planned plugin kinds: compiled-in / external process over stdio JSON-RPC / hosted UI package.planned: keel-plugin-core spec
keel.plugin.*The planned bridge a webview plugin uses to read its own state, call its own tools, request an approval and subscribe to events — and nothing else.planned: keel-plugin-core spec
Creation modeThe planned built-in plugin keel.creation: natural language → generated webview plugin → install → enable → deep link, with approval and rollback.planned: keel-plugin-core spec

DSH vocabulary mapped (reference only) ​

DSH termMeaning thereMapping here
apply(ctx)a plugin's entry point receiving injected servicesPlugin.Start(ctx, *PluginEnv)
inject / DIservices resolved and injected by the runtimeservice graph bindings + PluginEnv
effecta reversible side effect owned by a pluginPlugin.Effects released in reverse order
bundlea patch layer (config + plugins)planned enablement list; today the default loadout
profilean ordered stack of bundlesloadout (immutable snapshot, pinned per run)
Cordisthe TS plugin runtimenot ported — agentext + servicegraph express the same semantics in Go

Apache-2.0 (MIT notices kept for files moved from pigo)