@aid-framework/spec

中文文档
0.1.98发布于 2026/11/03Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.3万

AID框架规格语言: spec v0.1 JSON Schema,一种能意识到位置的YAML分解器,以及结构验证.

中文使用文档
文档目录10 节
  1. 安装
  2. 它会做什么
  3. 快开始
  4. 文件
  5. 管道步骤类型
  6. 诊断
  7. 杰森·斯克马
  8. 此软件包没有做什么
  9. API 密码
  10. 许可证

@aid-framework/spec

语言 AID 框架JSON斯克马,一个 位置意识 YAML 解析器和结构验证器。 此软件包决定文档是否 是一个 结构良好 AID谱.

一个 AID 应用程序从一个声明的 YAML 文件开始 。 那个文件是真相的来源:模型,提示, 工具、检索、代理、输油管和电压被宣布一次,下游的一切——IR、代码 发电机,运行时间——就是从它衍生出来的.

specVersion: "0.1"
project:
  name: support-copilot

models:
  fast:
    provider: openai-compatible
    model: gpt-4o-2024-08-06
    capabilities: [tool-calling, json-schema]

prompts:
  answer:
    template: |
      Answer the customer's question.
      Question: {{ question }}

pipelines:
  answer:
    steps:
      - generate:
          model: fast
          prompt: answer
          input:
            question: "{{ request.question }}"

安装

npm install @aid-framework/spec

要求节点.js 24或更新. 与类型脚本申报一起作为无害环境管理运输.

它会做什么

  • 参数 YAML 输入一个键入文档,可以记住每个节点来自何处,因此一个诊断可以指向 file:line:column 而不是只命名一个密钥.
  • 验证 用于编辑器自动完成的 Spec v0.1 JSON Schema 文档 和CI验证.
  • 讲述版本的真相. 定义语言的构造,但无法使用此构造报告为 spec/not-supported 命名可以使用的版本——绝不是像打字一样读取的通用图案失败.

快开始

import { checkSpecText, formatDiagnostics } from '@aid-framework/spec';

const { ok, diagnostics } = checkSpecText(source, { file: 'app/app.spec.yaml' });

if (!ok) {
  process.stderr.write(formatDiagnostics(diagnostics));
  process.exit(1);
}

checkSpecText 一步一步分析并验证. 故意短路:当YAML本身不能 解析、语义验证被跳过, 因为关于半解析文档的语义信息是噪音 .

向下工作一层 :

import { parseSpecDocument, validateSpec, formatDiagnostics } from '@aid-framework/spec';

const parsed = parseSpecDocument(source, { file: 'app/app.spec.yaml' });
const diagnostics = [
  ...parsed.diagnostics,
  ...validateSpec(parsed.value, { file: 'app/app.spec.yaml' }),
];

文件

节次自兹声明
specVersion0.1 数据文件的语言版本
project0.1 数据应用程序的名称和元数据
types0.1 数据由提示、工具和管道共享的已命名的记录类型
models0.1 数据型号别名:提供者、被钉住的型号标识、能力、限度、成本
prompts0.1 数据已版本的快速模板及其输入的变量
tools0.1 数据工具合同、处理者、副作用和认证政策
stores0.1 数据向量储存申报
retrievers0.1 数据检索来源、分块、嵌入和排名
evals0.1 数据数据集、指标和门
pipelines0.1 数据可执行步骤图
agents0.2 (韩语)代理环路、成套工具、转移/授权和预算
guardrails0.2 (韩语)投入/产出政策及其执行
decisions0.6 (中文(简体) )TypeSafe AI Jev 决定点:一个打出的问题,而不是聊天模式
memory0.2 (韩语)对话、用户和全球内存范围
deployments0.2 (韩语)触发声明、货币声明和流出声明

构建读取 spec 版本 0.1 结束 0.9。列出为 0.2 在一个0.1文件中被拒绝, 并有一个诊断 命名接受它的版本. deployments[].image 是一个0.4的构造和需求 target: container两种规则均在 deployments.<id>.image。 。 。 . guardrails[].decision 为 0.7 构造:它用 choice 决定而不是探测器政策,被拒绝 在较早的文件中。 A 类 decision eval 度量衡是一个0.8的构造:它用一个 已声明 score ,并在先前的文件中被驳回。 这个 route 步骤是一个0.9的构造: 从一个 choice 裁决的答复,并在先前的文件中被驳回.

管道步骤类型

管道步骤包含完全一种步骤。 验证人执行十二:

generate, (中文(简体) ), retrieve, (中文(简体) ), tool, (中文(简体) ), emit, (中文(简体) ), branch, (中文(简体) ), route, (中文(简体) ), parallel, (中文(简体) ), map, (中文(简体) ), reduce, (中文(简体) ), rerank, (中文(简体) ), guard, (中文(简体) ), agent。 。 。 .

branch, (中文(简体) ), route, (中文(简体) ), parallel, (中文(简体) ), map 财务报告和审定财务报表 reduce 它们是复合型——唯一可能搭起另一步骤的种类——和 入巢为界. emit 可能不会出现在复合步骤中,因为它会终止管道. branch 在认证的呼叫器上选择; route 通过询问 a 选择数据 choice 决定和决定 将答案匹配到 on。 。 。 .

本建筑中不推迟任何步骤类型. human 曾经 退休人员 而不是推迟: 人行即止是 代理人的财产(agents[].humanInTheLoop)),故旧拼法产生诊断性命名 替换“未知密钥”.

诊断

诊断是公共合同,而不是执行细节。 每个代码在 DIAGNOSTIC_CODES 被指称为 测试套件,由 aid validate,所以它是安全的匹配 在CI。 改头换面是一个突破性的变化.

import {
  countBySeverity, formatDiagnostics, hasErrors, sortDiagnostics,
} from '@aid-framework/spec';

const { ok, diagnostics } = checkSpecText(source, { file: 'app/app.spec.yaml' });
const failing = hasErrors(diagnostics); // only error severity fails a check; warnings do not
const counts = countBySeverity(diagnostics);

代码被命名为空格 spec/*有两个值得召唤,因为它们很容易交错:

  • spec/not-supported ——语言定义了这个构造,但这个构造还没有服务它. 讯息 命名该版本.
  • spec/unknown-key - 这把钥匙没有定义 几乎总是一个打字.

让他们保持区别是刻意的:一个“不支持”关于拼错的密钥的信息会让读者知道 寻找不存在的缺失特性.

杰森·斯克马

Schema是包导出,所以编辑器和外部工具使用验证器使用的同一种:

{
  "yaml.schemas": {
    "./node_modules/@aid-framework/spec/dist/schema/spec.schema.json": "app.spec.yaml"
  }
}
import schema from '@aid-framework/spec/spec.schema.json' with { type: 'json' };

此软件包没有做什么

它孤立地验证了一份文件。 它执行 没有 跨部门分析:无优惠完整性,无 能力谈判,没有费用 理智,没有安全检查。 他们需要看整个节目 所以他们住在 建造时的大门 @aid-framework/ir。 。 。 .

层为单向 : spec ← ir ← generator-sdk ← generators ← cli。这里没有导入以上包 这个.

API 密码

导出目的
checkSpecText(text, options?)分步解析并验证; 返回 { ok, value, diagnostics }
parseSpecDocument(text, options?)YAML – 键入文档外加定位诊断
validateSpec(value, options?)已分解文档的结构验证
specJsonSchema光谱 v0. 1 JSON Schema 作为对象
SPEC_VERSION, (中文(简体) ), SPEC_VERSION_LATEST版本 aid init 写入,最新版本读取
SUPPORTED_SPEC_VERSIONS, (中文(简体) ), SUPPORTED_SECTIONS版本和章节词汇
SUPPORTED_STEP_KINDS, (中文(简体) ), COMPOSITE_STEP_KINDS, (中文(简体) ), RETIRED_STEP_KINDS步骤类词汇
SECTION_MIN_VERSION哪个版本先接受后面各节
DIAGNOSTIC_CODES, (中文(简体) ), SEVERITIES诊断词汇
formatDiagnostic, (中文(简体) ), formatDiagnostics, (中文(简体) ), sortDiagnostics渲染
countBySeverity, (中文(简体) ), hasErrors检查
SourceDocument带有节点位置的解析文档

许可证

阿帕奇 - 2.0。由 AID 框架生成的代码是 不受该许可证的限制.

版本与发布记录

@aid-framework/spec 共发布 52 个版本,首次发布于 2026/10/31;过去 12 个月发布了 52 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.98latest2026/11/032 天前
0.1.972026/11/032 天前
0.1.962026/11/033 天前
0.1.952026/11/033 天前
0.1.942026/11/033 天前
0.1.932026/11/033 天前

关于 @aid-framework/spec 的常见问题

@aid-framework/spec 是什么?

AID框架规格语言: spec v0.1 JSON Schema,一种能意识到位置的YAML分解器,以及结构验证.

如何安装 @aid-framework/spec?

在项目目录运行 npm install @aid-framework/spec,或使用 pnpm add / yarn add / bun add。

@aid-framework/spec 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aid-framework/spec 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aid-framework/spec 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aid-framework/spec 可以商用吗?

@aid-framework/spec 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aid-framework/spec 的下载量有多少?

根据 npm 官方下载统计,@aid-framework/spec 在 2026/10/06 – 2026/11/04 这 30 天内被下载 12,731 次,日均约 424 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aid-framework/spec 还在维护吗?

最新版本 0.1.98 发布于 2026/11/03(2 天前);至今共发布 52 个版本,其中过去 12 个月发布了 52 个;首次发布于 2026/10/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。