BT AI 官方知识接口

BT AI 官方知识接口

BT AI 官方知识接口

功能

BT AI 官方知识接口向开发工具提供可校验、可缓存的 BT 官方知识。客户端可以先读取知识清单,再按任务需要下载单个模块;首次安装或离线更新也可以下载指定版本的完整包。

接口只返回公开知识,不接收用户问题、项目源码、模型配置或 API Key。所有地址都使用独立的 /ai/ 前缀。

语法

参数

路径参数

字段类型必填默认值有效范围或可选值含义
module_idString模块接口是清单 modules[].id 中的稳定 ID要获取的知识模块。
knowledge_versionString完整包接口是清单的 knowledge_version要获取的完整离线包版本。

条件请求头

字段类型必填默认值有效范围或可选值含义
If-None-MatchString上次响应的 ETag,支持弱标签和逗号分隔列表内容未变化时返回 304 Not Modified
If-Modified-SinceString上次响应的 Last-Modified未同时发送 If-None-Match 且发布时间一致时返回 304 Not Modified

返回值

知识清单

GET /ai/manifest 返回 UTF-8 JSON:

字段类型必填默认值有效范围或可选值含义
schema_versionInt当前为 1清单结构版本。
bt_versionString三段式版本知识对应的 BT 版本。
knowledge_versionStringYYYY.MM.DD.revision本次知识发布的唯一版本。
updated_atStringISO 8601知识发布时间。
last_modifiedStringRFC 7231 HTTP 日期条件请求使用的最后修改时间。
min_client_versionString三段式版本能读取当前 schema 的最低客户端版本。
source_sha256String64 位小写十六进制单一知识源规范化后的 SHA-256。
bundle_formatStringbt-ai-bundle-json-v1完整包格式。
bundle_urlString/ai/bundle/{knowledge_version}完整包地址。
bundle_sha256String64 位小写十六进制完整包原始 UTF-8 字节的 SHA-256。
modulesArray[Object]固定模块清单可按需获取的模块元数据。

modules[] 字段:

字段类型必填默认值有效范围或可选值含义
idString稳定模块 ID模块唯一标识。
revisionInt大于等于 1模块正文修订号。
content_urlString/ai/knowledge/{id}模块正文地址。
sha256String64 位小写十六进制模块原始 UTF-8 字节的 SHA-256。
approx_tokensInt大于 0模块的近似 Token 数,用于上下文预算。
runtimesArray[String]cli/web/desktop/extension/ffi模块适用运行时。
tagsArray[String]稳定检索标签模块选择和本地检索标签。
depends_onArray[String][]其他模块 ID使用本模块前应同时加载的依赖模块。
block_countInt大于 0模块中的稳定检索块数量。

单个模块

GET /ai/knowledge/{module_id} 返回 UTF-8 Markdown。每个标题前有稳定块标记:

客户端应以清单中的 sha256 校验收到的原始 UTF-8 字节,不要在校验前改变换行、编码或尾部换行。

完整离线包

GET /ai/bundle/{knowledge_version} 返回 bt-ai-bundle-json-v1 JSON:

字段类型必填默认值有效范围或可选值含义
schema_versionInt当前为 1完整包结构版本。
bundle_formatStringbt-ai-bundle-json-v1完整包格式。
knowledge_versionString与请求版本一致包内知识版本。
manifestObject清单快照包内清单;为避免自引用哈希,bundle_sha256 固定为 null,外部清单的值才是包校验值。
block_indexObjectschema 1全部稳定块的模块、行号、标签、Token 估算和 SHA-256 索引。
modulesObject[String,String]键为模块 ID9 个模块的完整 Markdown 正文。

响应头

字段类型必填默认值有效范围或可选值含义
Content-TypeStringJSON 或 text/markdown; charset=utf-8响应格式。
Cache-ControlString清单/模块 5 分钟校验;版本包一年且 immutable客户端缓存策略。
ETagStringHTTP 实体标签If-None-Match 条件请求值。
Last-ModifiedStringRFC 7231 HTTP 日期If-Modified-Since 条件请求值。
X-BT-Knowledge-VersionString当前知识版本响应所属知识版本。
X-Content-SHA256String模块和完整包是64 位小写十六进制当前响应正文的 SHA-256。
Access-Control-Allow-OriginString*允许公开知识客户端跨域读取。

代码示例

下面的 BT 脚本按需获取核心契约模块,并用清单中的摘要校验内容:

注意事项

  • 同一个开发任务应固定使用一个 knowledge_version,不要在任务中途混用两个版本。
  • 下载模块或完整包后必须先校验 SHA-256,再写入正式缓存;校验失败时继续使用上一个有效版本。
  • 客户端应随安装包内置一个已校验的完整快照。官网不可访问、超时、返回无效 JSON 或哈希不匹配时,回退到内置快照。
  • 304 响应没有正文;客户端应继续使用本地已校验内容。
  • 模块接口只接受清单中存在的 ID,未知模块或版本返回 404;非 GET 请求返回 405