Skip to content
English

KnowledgeCatalog ​

KIT · interface · 类型合同

Compiled catalog of knowledge documents.

导入 ​

ts
import type { KnowledgeCatalog } from '@jangts/agent-core/kits/knowledge';
js
/** @typedef {import('@jangts/agent-core/kits/knowledge').KnowledgeCatalog} KnowledgeCatalog */

其他公开入口:@jangts/agent-core/types、@jangts/agent-core/kits/knowledge、@jangts/agent-core/kits。

定义 ​

ts
interface KnowledgeCatalog

继承或实现: ReadonlyCatalog<KnowledgeDocument>。

字段结构 ​

字段类型必需说明
sectionIds(documentId: string) => readonly string[]必需Section ids of one document, in declaration order; throws for an unknown document.
assertSelection(read: KnowledgeRead) => void必需Validates a read without producing content; throws when the selection is invalid.
read(read: KnowledgeRead) => KnowledgeSnapshot必需Produces a snapshot for the read; throws for unknown documents, sections or budget excess.
definitionsreadonly Readonly<KnowledgeDocument>[]必需只读。Definitions in registration order; each entry is frozen by the implementation.
ids() => readonly string[]必需Ids in the same order as definitions.
values() => IterableIterator<Readonly<KnowledgeDocument>>必需见类型定义及调用场景。
entries() => IterableIterator<readonly [string, Readonly<KnowledgeDocument>]>必需见类型定义及调用场景。
has(id: string) => boolean必需见类型定义及调用场景。
get(id: string) => Readonly<KnowledgeDocument> | undefined必需Returns the definition or undefined; the caller decides whether absence is an error.
require(id: string) => Readonly<KnowledgeDocument>必需Returns the definition or throws; use when the id is a required reference.

成员目录 ​

成员用途
sectionIdsSection ids of one document, in declaration order; throws for an unknown document.
assertSelectionValidates a read without producing content; throws when the selection is invalid.
readProduces a snapshot for the read; throws for unknown documents, sections or budget excess.
idsIds in the same order as definitions.
values完整输入输出见下方重载。
entries完整输入输出见下方重载。
has完整输入输出见下方重载。
getReturns the definition or undefined; the caller decides whether absence is an error.
requireReturns the definition or throws; use when the id is a required reference.

成员详情 ​

sectionIds ​

Section ids of one document, in declaration order; throws for an unknown document.

ts
KnowledgeCatalog.sectionIds(documentId: string): readonly string[]

Section ids of one document, in declaration order; throws for an unknown document.

参数类型传递说明
documentIdstring必需—

返回: readonly string[]。

assertSelection ​

Validates a read without producing content; throws when the selection is invalid.

ts
KnowledgeCatalog.assertSelection(read: KnowledgeRead): void

Validates a read without producing content; throws when the selection is invalid.

参数类型传递说明
readKnowledgeRead必需—
read 的字段
字段类型必需说明
documentIdstring必需只读。见类型定义及调用场景。
selectionSectionSelection必需只读。Must reference existing sections; an invalid selection throws.

返回: void。

read ​

Produces a snapshot for the read; throws for unknown documents, sections or budget excess.

ts
KnowledgeCatalog.read(read: KnowledgeRead): KnowledgeSnapshot

Produces a snapshot for the read; throws for unknown documents, sections or budget excess.

参数类型传递说明
readKnowledgeRead必需—
read 的字段
字段类型必需说明
documentIdstring必需只读。见类型定义及调用场景。
selectionSectionSelection必需只读。Must reference existing sections; an invalid selection throws.

返回: KnowledgeSnapshot。

返回值结构
字段类型必需说明
idstring必需只读。Deterministic identity derived from document, revision and selection.
revisionstring必需只读。Revision of the document that produced this content.
localestring | undefined可省略只读。见类型定义及调用场景。
contentstring必需只读。Rendered text, trimmed; sections are separated by blank lines.
documentIdstring必需只读。见类型定义及调用场景。
selectionSectionSelection必需只读。Must reference existing sections; an invalid selection throws.

ids ​

Ids in the same order as definitions.

ts
KnowledgeCatalog.ids(): readonly string[]

Ids in the same order as definitions.

无调用参数。

返回: readonly string[]。

values ​

ts
KnowledgeCatalog.values(): IterableIterator<Readonly<KnowledgeDocument>>

无调用参数。

返回: IterableIterator<Readonly<KnowledgeDocument>>。

entries ​

ts
KnowledgeCatalog.entries(): IterableIterator<readonly [string, Readonly<KnowledgeDocument>]>

无调用参数。

返回: IterableIterator<readonly [string, Readonly<KnowledgeDocument>]>。

has ​

ts
KnowledgeCatalog.has(id: string): boolean
参数类型传递说明
idstring必需—

返回: boolean。

get ​

Returns the definition or undefined; the caller decides whether absence is an error.

ts
KnowledgeCatalog.get(id: string): Readonly<KnowledgeDocument> | undefined

Returns the definition or undefined; the caller decides whether absence is an error.

参数类型传递说明
idstring必需—

返回: Readonly<KnowledgeDocument> \| undefined。

返回值的可选结构: 选择其中一种结构,各分支的字段要求分别列出。

分支 1

undefined

分支 2
字段类型必需说明
idstring必需只读。Stable document id; duplicate ids are rejected by the catalog.
revisionstring必需只读。Revision label recorded in every snapshot so a citation names the exact content.
localestring | undefined可省略只读。Locale of the content, when the App maintains translations.
partsreadonly KnowledgePart[]必需只读。Ordered content.

require ​

Returns the definition or throws; use when the id is a required reference.

ts
KnowledgeCatalog.require(id: string): Readonly<KnowledgeDocument>

Returns the definition or throws; use when the id is a required reference.

参数类型传递说明
idstring必需—

返回: Readonly<KnowledgeDocument>。

返回值结构
字段类型必需说明
idstring必需只读。Stable document id; duplicate ids are rejected by the catalog.
revisionstring必需只读。Revision label recorded in every snapshot so a citation names the exact content.
localestring | undefined可省略只读。Locale of the content, when the App maintains translations.
partsreadonly KnowledgePart[]必需只读。Ordered content.

使用示例 ​

先读取一份普通对象资料 ​

入门 · Node.js

ts
import { Knowledge } from '@jangts/agent-core/kits/knowledge';
const catalog = Knowledge.defineKnowledgeCatalog([
  { id: 'manual', revision: '1', parts: ['Agent Core 支持普通 Workflow 节点。'] },
]);
const snapshot = catalog.read({ documentId: 'manual', selection: { mode: 'document' } });
console.log(snapshot.content, snapshot.revision);
js
import { Knowledge } from '@jangts/agent-core/kits/knowledge';
const catalog = Knowledge.defineKnowledgeCatalog([
    { id: 'manual', revision: '1', parts: ['Agent Core 支持普通 Workflow 节点。'] },
]);
const snapshot = catalog.read({ documentId: 'manual', selection: { mode: 'document' } });
console.log(snapshot.content, snapshot.revision);

在相同 read 上增加章节与预算 ​

配置 · Node.js

ts
import { Knowledge } from '@jangts/agent-core/kits/knowledge';
const catalog = Knowledge.defineKnowledgeCatalog([
  { id: 'manual', revision: '2', parts: [
    { id: 'start', parts: ['先运行一个节点。', { id: 'advanced', parts: ['再增加模型和工具。'] }] },
  ] },
], { maxChars: 2000 });
console.log(catalog.sectionIds('manual'));
const snapshot = catalog.read({ documentId: 'manual', selection: { mode: 'subtree', sectionIds: ['start'] } });
console.log(snapshot.content, snapshot.id);
js
import { Knowledge } from '@jangts/agent-core/kits/knowledge';
const catalog = Knowledge.defineKnowledgeCatalog([
    { id: 'manual', revision: '2', parts: [
            { id: 'start', parts: ['先运行一个节点。', { id: 'advanced', parts: ['再增加模型和工具。'] }] },
        ] },
], { maxChars: 2000 });
console.log(catalog.sectionIds('manual'));
const snapshot = catalog.read({ documentId: 'manual', selection: { mode: 'subtree', sectionIds: ['start'] } });
console.log(snapshot.content, snapshot.id);

相关策略源码 ​

相关定义 ​

接口参考、使用示例与开发指南。