跳到主要内容

推理

推理

推理把一个提示词变成一个结构化输出。它是 窄能力 窄能力:一个经 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 底层使用推理——但它是不同的编写面与不同的运行时。