Skip to content

术语表

Noeta 的规范词汇。每个术语在整个代码库和文档中都有单一、稳定的含义。权威来源是仓库根目录的CONTEXT.md

核心抽象

Task

代理的一个执行实例;它可以生成子任务,可以挂起和恢复。系统中唯一的一等公民。 避免使用: Run、Job、Execution、Workflow Instance。

另见:核心概念ADR:任务作为唯一原语

Subtask

通过 spawn_subtask 从父任务生成的任务。结构上与父任务相同,仅通过 parent_task_id 关联。 避免使用: Child Run、Sub-agent。

另见:核心概念ADR:子任务扇出与持久唤醒

Agent

一个命名的、可生成的配置(policy + 工具 + 上下文规范 + 预算)。不是运行时实体——只是任务的"类"。每个 Agent 携带一个 description,用于渲染子代理分派控制工具 schema。 避免使用: Bot、Assistant、AI。

另见:预设代理ADR:工具与代理目录

Options

声明式代理配置(公开接口 noeta.sdk.Options)。由 compile_options 编译为 AgentSpec表达官方代理集和自定义代理的唯一方式。

另见:API 参考配置

Step

任务在一次 Engine 主循环中前进的片段:compose_view → decide → dispatch避免使用: Iteration、Turn、Cycle。

Decision

Policy.decide 的返回值,Engine 分派的输入。一组中立机制变体:tool_callsspawn_subtaskyield_for_humanwait_timerwait_externalfinishfailspawn_subtasksstate_patch避免使用: Action、Command、Intent。

另见:核心概念

Policy

"在给定当前 View 的情况下决定下一步"的函数。可以是纯 LLM(ReActPolicy)、纯 FSM 或混合体。 避免使用: Pattern、Strategy、Brain。

另见:核心概念ADR:Engine-Policy-数据流

Tool

代理可以调用的外部动作。结构化契约三元组 name / input_schema / description 是手写的、面向 LLM 的。还携带 risk_level。通过 Options 提供的开放扩展接口。 避免使用: Function、Action、Skill。

另见:工具参考ADR:工具描述规范化

Provider

外部服务(LLM / 存储 / 向量存储)的 Noeta 形态 adapter。LLMProvider 通过 Options.provider 开放,并通过 noeta.sdk 重新导出。存储后端通过主机配置配置,而非 Options。不是上下文内容来源。避免使用: Vendor、Backend、Connector。

另见:配置ADR:Provider adapters and multimodalADR:提供者中立

Skill

位于 .noeta/skills/<name>/SKILL.md 的本地静态 LLM 工作流模板,可选附带资源文件。三层合并(内置 < 全局 ~/.noeta/skills < 工作区)。两阶段按需加载:菜单渲染到 skill 控制工具 schema;选中后主体渲染到半稳定上下文。与 Tool 不是一回事。避免使用: Plugin、Module、Macro。

另见:ADR:模型驱动的技能调用ADR:技能资源按需加载

状态与事件

EventLog

每任务的只追加 EventEnvelope 记录流。因果关系和决策的真相来源。避免使用: Journal、Log、Audit Trail。

另见:核心概念ADR:事件溯源真相

Event / EventEnvelope

EventLog 中的一条记录。Envelope 持有 seq / type / actor / trace_id / causation_id;载荷是一个类型化的 dataclass。 避免使用: Message、Record。

ContentStore

内容寻址、不可变的大对象存储。大对象的真相来源。 大于 4 KB 事件载荷上限的主体存放在此处;envelope 仅携带 ContentRef避免使用: BLOB Store、Asset Store、Object Store。

另见:核心概念ADR:存储协议 L0

ContentRef

指向 ContentStore 的引用:hash + size + media_type避免使用: URL、Path、Pointer。

Artifact

由 Tool 或 Provider 产生的大对象,通过 ContentRef 引用。 避免使用: File、Attachment、Blob。

Snapshot

EventLog 中的一个特殊事件,其主体存入 ContentStore。在每次挂起之前写入;是 fold 的加速点。 避免使用: Checkpoint、State Dump。

Task State(四个切片)

四个类型化切片,每个切片恰好有一个写者:

  • RuntimeState —— messages / usage(写者:Engine)
  • TaskState —— goal / phase / todos / decisions / active_content(写者:Policy 的 state_patch
  • ContextState —— current plan ref(写者:Engine fold)
  • GovernanceState —— cost / denied(写者:Engine)

执行模型

Engine

通过一步推进单个 Task。≤ 500 行。对 worker / dispatcher / workflow 一无所知。锁定:不是扩展点。 避免使用: Runtime、Executor。

另见:核心概念ADR:Engine-Policy-数据流

Worker

从 Dispatcher 租用 Task 并调用 Engine 推进它的进程。一个租约运行到下一次挂起或终止状态,然后释放。避免使用: Runner、Daemon。

另见:核心概念ADR:Worker 租约模型

Lease

Worker 对 Task 的短期独占持有,带有 lease_id / expires_at避免使用: Lock、Claim。

另见:ADR:Worker 租约模型ADR:单写者不变量

Dispatcher

管理 Task 入队、Lease 授予、唤醒事件交付和过期回收。 避免使用: Scheduler、Queue Manager。

另见:核心概念ADR:Worker 租约模型

Suspended

Task 的 4 种状态之一,等待唤醒事件。等待子任务 / 批准 / 计时器 / 外部事件的统一表达避免使用: Yielded、Paused、Blocked、Waiting。

WakeCondition / WakeEvent

描述 Task 正在等待什么。SubtaskCompleted / HumanResponseReceived / TimerFired / ExternalEvent

另见:核心概念ADR:子任务扇出与持久唤醒

上下文

View

ContextComposer 为 Policy 组装的 LLM 输入。不等于 Task——它是一个投影。 避免使用: Prompt(View 是 Prompt 的结构化形式)、Frame。

ContextComposer

将 Task 组装为 View。主路径不调用 LLM。具体的 ThreeSegmentComposer 在用户界面上是一个封闭的扩展点(stable-prefix KV-cache 可重现性是硬约束)。唯一的开放钩子是注册一个 ContentKindSpec避免使用: PromptBuilder、ContextAssembler。

另见:ADR:统一上下文供给ADR:上下文压缩

ContextPlan

给定 LLM 调用的 View 元数据(选择了哪些块、压缩了什么、丢弃了什么)。用于审计和调试。 避免使用: Prompt Trace。

Stable Prefix / Semi-stable / Dynamic Suffix

View 三段组装中的固定段名称。Stable Prefix 的缓存友好性是硬约束。

Content Channel

常驻内容(技能、内存索引)进入上下文的通用机制。两部分:事件记录ContextContentRecorded)+ 组装渲染ContentChannelRegistry 将每种类型渲染到半稳定段)。注册 ContentKindSpec 是开放扩展钩子。 避免使用: Provider、ContentSource、Middleware。

另见:ADR:模型驱动的技能调用

origin

Message 上的可选作者标记,取值 human / system / memory,默认为 None = 角色的自然作者。单写者守卫:只有 Engine 的记录路径可以写入它。 避免使用: Author、Sender、Role。

另见:ADR:事件来源标记

Memory

跨任务长期内存 v1: = memory_write 工具, = memory_read 工具,常驻索引 = 内容通道租户(kind="memory",policy evolving),自动召回 = 主机在用户消息接缝处检索。由 Capabilities.memory 控制。 避免使用: 用 "Memory" 指代 TaskState(那是任务内状态;这是跨任务的)。

治理

Principal

Task 的发起者或责任方;持有 identity / capabilities / allowed_side_effects / delegation chain。 避免使用: User(User 是一种 Principal)、Actor。

Contract

Task 的输入、预期输出 schema、拒绝条件和副作用声明。冻结到 TaskCreated 事件中。 避免使用: Spec、Schema。

Budget

Task 的资源上限(iterations / cost_usd / wall_seconds / tool_calls)。 避免使用: Quota、Limit。

Guard

在三个点运行的同步钩子——before_tool_call / before_spawn_subtask / before_finish——返回 allow / deny / require_approval避免使用: Middleware、Interceptor、Filter。

另见:核心概念ADR:Guard-Observer 钩子

Observer

订阅 EventLog 的异步钩子;其失败不影响 Task。 避免使用: Listener、Subscriber。

另见:核心概念ADR:Guard-Observer 钩子

Mutator

在 Noeta v2 中已弃用。 钩子不得修改 ctx / payload。要修改,请改为更改 Policy 或 Composer。

操作

Inspect

读取 EventLog + ContentStore 并向人类呈现历史。无外部 IO。 避免使用: View Log、Dump。

Resume

从挂起状态继续实际执行。一个操作紧急停止杠杆;正常路径由唤醒事件触发。 避免使用: Restart、Continue。

另见:故障模式

标记的歧义

"Workflow"

不是一等概念。用确定性 Policy + spawn_subtask 表达固定过程。模型即兴创作的编排脚本表现为一个 Task + 一个解释该脚本的 Policy

"Session"

不是一等概念。多轮对话只是一个 Task 反复接收用户输入:一个交互会话 = 一个 Task

"Run"

不是一等概念。始终使用 Task。

Released under the MIT License.