推理
推理
推理把一个提示词变成一个结构化输出。它是 窄能力 窄能力:一个经 schema 校验的答案,没有持久转录、没有状态。当工作需要跨会话的多步推理与领域工具时,那是 Agent,不是推理。
单步推理
一次模型调用返回一个结构化输出——对记录分类、从文档中抽取字段,或总结一行数据。
带工具的推理
调用可以声明编写的 `tools` 闭包,模型随后运行一个有界循环——调用、观察、继续——直到以受 schema 约束的答案收束。也可以声明该调用绑定的宿主工具;没有绑定时会被拒绝。最终仍是同一个结构化输出。
结构化输出
结果对照 Effect Schema schema 校验,调用方拿到的是类型化数据——绝不需要解析的自由文本。
推理实战
一次调用进,一个结构化值出——经过 schema 校验、可直接使用的结果:
import { Schema } from 'effect';
import { defineQueryHandler } from '@norbital-ai/bolt/authoring';
const ReviewOutcome = Schema.Struct({
approved: Schema.Boolean,
reason: Schema.String,
suggested_priority: Schema.Literals(['low', 'medium', 'high'])
});
export default defineQueryHandler({
description: 'Reviews one purchase request.',
schema: Schema.Struct({ request_id: Schema.String }),
handler: ({ request_id }, api) =>
Effect.gen(function* () {
// One call in, one structured value out — validated, typed, never freeform
return yield* api.infer({
schema: ReviewOutcome,
prompt: 'Review this purchase request.'
});
})
}); ai 设施端口
模型访问经由 ai 设施端口:Bolt 定义契约,宿主在运行时绑定具体提供商,租户代码永远看不到凭据。完整的端口列表见 设施 。
会话即数据
每次对话都是一个租户自有的聚合: conversation ,其中包含顺序的 conversation_message 记录、turn 尝试与 turn_usage 用量记录——转录、状态和用量会像其他集合一样原子同步。
推理 vs Agent
推理是输入一个提示词、输出一个结构化结果。 Norbius 是 Agentic 工作负载:一个跨多步推理的循环、调用工具、读写集合,还能起草源码。Norbius 底层使用推理——但它是不同的编写面与不同的运行时。