createScopeRegistry
KIT · function · Runtime value
Create and seal a complete catalog; use the constructor for incremental installation.
Import
ts
import { createScopeRegistry } from '@jangts/agent-core/kits/domains';js
import { createScopeRegistry } from '@jangts/agent-core/kits/domains';Other public entry points:@jangts/agent-core, @jangts/agent-core/types, @jangts/agent-core/kits/domains, @jangts/agent-core/kits.
Definition
Type parameters
| Type parameter | Constraint | Default type |
|---|---|---|
Definition | ScopeDefinition | — |
Call
ts
createScopeRegistry<Definition extends ScopeDefinition>(definitions: Iterable<Definition>, policy?: ScopeRegistryPolicy<Definition>): ScopeRegistry<Definition>Create and seal a complete catalog; use the constructor for incremental installation.
| Type parameter | Constraint | Default type |
|---|---|---|
Definition | ScopeDefinition | — |
| Parameter | Type | Passing | Description |
|---|---|---|---|
definitions | Iterable<Definition> | Required | — |
policy | ScopeRegistryPolicy<Definition> | Optional | — |
Fields of policy
| Field | Type | Required | Description |
|---|---|---|---|
requireGoals | boolean | undefined | Optional | Read-only. Require at least one Tool id per scope. |
requireSources | boolean | undefined | Optional | Read-only. Require at least one query scope or knowledge topic per scope. |
requireTools | boolean | undefined | Optional | Read-only. Require at least one tool id per scope. |
idPattern | RegExp | undefined | Optional | Read-only. Pattern every id and alias must match. |
categories | readonly string[] | undefined | Optional | Read-only. Allowed category values; undefined accepts any value. |
assertDefinition | ((definition: Definition) => void) | undefined | Optional | Read-only. Extra App assertion, called after the built-in checks; must return void synchronously. |
acceptsTool | ((definition: Readonly<Definition>, goal: string) => boolean) | undefined | Optional | Read-only. Replaces the default intent membership test; must return boolean synchronously. |
tags | readonly string[] | undefined | Optional | Read-only. Diagnostic tags attached to registration rejections. |
errors | { readonly sealed?: BreakReason; readonly invalid?: BreakReason; } | undefined | Optional | Read-only. See the type definition and usage context. |
Returns: ScopeRegistry<Definition>.
Examples
- Domain Tools: tool declarations and scope relationships: One list provides the available tools, allowed delegates, scope aliases, sources, and tool relationships.
Register one tool that explains an interface
Beginner · Node.js
ts
import { IntentRegistry, ScopeRegistry } from '@jangts/agent-core/kits/domains';
const tools = IntentRegistry.create([
{ id: 'explain', description: '根据资料解释 SDK', delegates: ['read', 'reply'], asIntent: true },
]);
console.log(tools.ids(), tools.allows('explain', 'read'));
const scopes = ScopeRegistry.create([
{ id: 'sdk', description: 'SDK 说明资料', category: 'knowledge' },
]);
console.log(scopes.require('sdk').knowledgeTopicIds);js
import { IntentRegistry, ScopeRegistry } from '@jangts/agent-core/kits/domains';
const tools = IntentRegistry.create([
{ id: 'explain', description: '根据资料解释 SDK', delegates: ['read', 'reply'], asIntent: true },
]);
console.log(tools.ids(), tools.allows('explain', 'read'));
const scopes = ScopeRegistry.create([
{ id: 'sdk', description: 'SDK 说明资料', category: 'knowledge' },
]);
console.log(scopes.require('sdk').knowledgeTopicIds);Add constraints and scope relationships while keeping the same query entry
Configuration · Node.js
ts
import { IntentRegistry, ScopeRegistry } from '@jangts/agent-core/kits/domains';
const tools = new IntentRegistry({ idPattern: /^[a-z-]+$/, delegates: ['read', 'reply'] })
.registerAll([{ id: 'explain', description: '根据资料解释 SDK', delegates: ['read', 'reply'], asIntent: '用户希望了解 SDK 接口或用法。' }]).seal();
const scopes = ScopeRegistry.create([
{ id: 'sdk', description: 'SDK 说明资料', category: 'knowledge', aliases: ['agent-core'], goalIds: ['explain'], knowledgeTopicIds: ['manual'], toolIds: ['read-source'] },
], { categories: ['knowledge'], requireGoals: true, requireSources: true });
console.log(tools.describe(), scopes.normalize('agent-core'));
console.log(scopes.acceptsTool('agent-core', 'explain'), scopes.topics('sdk'));js
import { IntentRegistry, ScopeRegistry } from '@jangts/agent-core/kits/domains';
const tools = new IntentRegistry({ idPattern: /^[a-z-]+$/, delegates: ['read', 'reply'] })
.registerAll([{ id: 'explain', description: '根据资料解释 SDK', delegates: ['read', 'reply'], asIntent: '用户希望了解 SDK 接口或用法。' }]).seal();
const scopes = ScopeRegistry.create([
{ id: 'sdk', description: 'SDK 说明资料', category: 'knowledge', aliases: ['agent-core'], goalIds: ['explain'], knowledgeTopicIds: ['manual'], toolIds: ['read-source'] },
], { categories: ['knowledge'], requireGoals: true, requireSources: true });
console.log(tools.describe(), scopes.normalize('agent-core'));
console.log(scopes.acceptsTool('agent-core', 'explain'), scopes.topics('sdk'));