Skip to content
English

ContextSelector ​

SUPPORT · interface · 类型合同

Model or local selector that chooses which reductions to apply.

导入 ​

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

其他公开入口:@jangts/agent-core/support、@jangts/agent-core/support/context。

定义 ​

ts
interface ContextSelector

字段结构 ​

字段类型必需说明
idstring必需见类型定义及调用场景。
maxCallsnumber | undefined可省略Maximum model calls made through callModel, default 1; 0 permits a local selector.
select(call: ContextSelectionCall, context: ExecutionContext) => Promise<readonly string[]>必需Returns selected reduction ids; unknown ids are rejected.

成员目录 ​

成员用途
selectReturns selected reduction ids; unknown ids are rejected.

成员详情 ​

select ​

Returns selected reduction ids; unknown ids are rejected.

ts
ContextSelector.select(call: ContextSelectionCall, context: ExecutionContext): Promise<readonly string[]>

Returns selected reduction ids; unknown ids are rejected.

参数类型传递说明
callContextSelectionCall必需—
contextExecutionContext必需—
call 的字段
字段类型必需说明
stageIdstring必需只读。见类型定义及调用场景。
candidatesreadonly ContextSelectionCandidate[]必需Reducible candidates, already filtered and measured.
fragmentsreadonly ContextFragment[]必需Only reducible fragments; never protected request or system fragments.
currentTokensnumber | undefined可省略Current input tokens, when a token budget applies.
requiredReductionTokensnumber | undefined可省略Tokens that must be removed to satisfy the token budget.
currentCharsnumber必需见类型定义及调用场景。
requiredReductionCharsnumber必需Characters that must be removed to satisfy the character budget.
remainingCallsnumber必需Calls the selector may still spend through callModel.
callModelContextModelCall必需见类型定义及调用场景。
context 的字段
字段类型必需说明
loggerSubFlowLog | undefined可省略只读。Explicit optional recorder for this operation; never inferred from diagnostics.
signalAbortSignal必需只读。Non-optional cancellation signal; never undefined once execution has started.
diagnosticsDiagnosticContext | undefined可省略只读。Diagnostic scope of the enclosing call, when recording is enabled.

返回: Promise<readonly string[]>。

等待后的值: readonly string[]。

使用示例 ​

绑定一个文本压缩 handler ​

入门 · Node.js

ts
import { Support } from '@jangts/agent-core';
const compressor = Support.createContextCompressor({
  id: 'history-summary', instruction: '保留事实、时间和未完成事项,精简重复表达。',
  transport: 'core:plain-text', maxOutputTokens: 500,
  parse(value: unknown) { if (typeof value !== 'string' || !value.trim()) throw new TypeError('需要非空摘要'); return value; },
});
console.log(compressor.id);
js
import { Support } from '@jangts/agent-core';
const compressor = Support.createContextCompressor({
    id: 'history-summary', instruction: '保留事实、时间和未完成事项,精简重复表达。',
    transport: 'core:plain-text', maxOutputTokens: 500,
    parse(value) { if (typeof value !== 'string' || !value.trim())
        throw new TypeError('需要非空摘要'); return value; },
});
console.log(compressor.id);

选择器明确控制可见摘录范围 ​

配置 · Node.js

selector-json 必须由 App 注册,返回 value={stepIds:string[]};不能把普通文本传输当成已解析 JSON。此例只展示 handler 装配,不发请求。

ts
import { Support } from '@jangts/agent-core';
const selector = Support.createContextSelector({ id: 'select-reduction',
  transport: 'selector-json', maxOutputTokens: 200, maxExcerptChars: 1000,
});
console.log(selector.id);
js
import { Support } from '@jangts/agent-core';
const selector = Support.createContextSelector({ id: 'select-reduction',
    transport: 'selector-json', maxOutputTokens: 200, maxExcerptChars: 1000,
});
console.log(selector.id);

相关策略源码 ​

相关定义 ​

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