Skip to content
中文

Reflection ​

KIT · constant · Runtime value

Import ​

ts
import { Reflection } from '@jangts/agent-core/kits/reflection';
js
import { Reflection } from '@jangts/agent-core/kits/reflection';

Other public entry points:@jangts/agent-core/types, @jangts/agent-core/kits, @jangts/agent-core/kits/reflection.

Definition ​

Member index ​

MemberPurpose
defineReflectionSee the overload below for full inputs and outputs.

Member details ​

defineReflection ​

ts
Reflection.defineReflection<App>(definition: ReflectionDefinition<App>): ReflectionTask<App>

Compile a reflection task.

Model-driven investigation through ordinary registered tools and the existing Core loop. The task always reports persisted: false: storing a report is the App's decision. Observed findings must cite evidence ids that were actually returned in this run, which is what keeps the report tied to real observations instead of model recall.

Type parameterConstraintDefault type
App——
ParameterTypePassingDescription
definitionReflectionDefinition<App>Required—
Fields of definition
FieldTypeRequiredDescription
modelPick<ModelRunner<string, readonly ModelTransportDefinition<unknown>[]>, "remainingCalls" | "createChild">RequiredRead-only. Parent runner; the reflection creates a child and preserves the parent's reserve.
sourceReflectionSource<App>RequiredRead-only. Evidence source queried through the reflection tools.
toolsreadonly ToolDefinition<any, any, App>[] | undefinedOptionalRead-only. Additional tools exposed to the reflection model.
maxCallsnumber | undefinedOptionalRead-only. Model calls the child may use; defaults to 4.
reserveCallsnumber | undefinedOptionalRead-only. Parent calls kept untouched; defaults to 1.
timeoutMsnumber | undefinedOptionalRead-only. Wall-clock limit for the whole reflection in milliseconds; defaults to 30000.
maxPagesnumber | undefinedOptionalRead-only. Maximum evidence pages read; defaults to 4.
maxEventsnumber | undefinedOptionalRead-only. Maximum evidence items collected; defaults to 64.
maxEvidenceCharsnumber | undefinedOptionalRead-only. Maximum evidence characters placed in the model context; defaults to 12000.
authorize(question: string, context: OperationContext<App>) => MaybePromise<void>RequiredGuards one reflection request; runs before any model call.

Returns: ReflectionTask<App>.

Return value structure
FieldTypeRequiredDescription
run(question: string, context: OperationContext<App>) => Promise<ReflectionReport>RequiredAnswers the question from evidence; never throws for incomplete evidence alone.

Examples ​

Bind the reflection model, evidence source, and authorization ​

Beginner · Node.js

ts
import { defineReflection } from '@jangts/agent-core/kits/reflection';
import type { ReflectionSource } from '@jangts/agent-core/kits/reflection';
import type { ModelRunner, OperationContext } from '@jangts/agent-core';

export function review<App>(model: ModelRunner, source: ReflectionSource<App>,
  authorize: (question: string, context: OperationContext<App>) => Promise<void>) {
  return defineReflection({ model, source, authorize,
    maxCalls: 4, reserveCalls: 1, maxPages: 4, maxEvents: 64, maxEvidenceChars: 12000 });
}
js
import { defineReflection } from '@jangts/agent-core/kits/reflection';
export function review(model, source, authorize) {
    return defineReflection({ model, source, authorize,
        maxCalls: 4, reserveCalls: 1, maxPages: 4, maxEvents: 64, maxEvidenceChars: 12000 });
}

Build the same kind of evidence source from a log reader ​

Configuration · Node.js

The reader's directory scope, shutdown, and retention are managed by the App. The adapted source can be passed into the same defineReflection.

ts
import { defineReflectionLogSource } from '@jangts/agent-core/kits/reflection';
import type { ReflectionLogReader } from '@jangts/agent-core/kits/reflection';
import type { OperationContext } from '@jangts/agent-core';

export function logSource<App>(reader: ReflectionLogReader, traceId: string,
  authorize: (context: OperationContext<App>) => Promise<void>) {
  return defineReflectionLogSource({ reader, traceId, id: 'authorized-history', authorize });
}
js
import { defineReflectionLogSource } from '@jangts/agent-core/kits/reflection';
export function logSource(reader, traceId, authorize) {
    return defineReflectionLogSource({ reader, traceId, id: 'authorized-history', authorize });
}

API reference, usage examples and developer guides.