Skip to content
中文

InvocationHandler ​

CORE · interface · Type contract

A named handler invoked by a tool lifecycle step.

Import ​

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

Other public entry points:@jangts/agent-core, @jangts/agent-core/types, @jangts/agent-core/structs, @jangts/agent-core/tools.

Definition ​

ts
interface InvocationHandler<Input, Context>

Type parameters ​

Type parameterConstraintDefault type
Input——
Context——

Field structure ​

FieldTypeRequiredDescription
idstringRequiredRead-only. See the type definition and usage context.
call(input: Input, context: Context, execution: import("./tools.js").ToolExecutionContext) => voidRequiredRuns the handler. The return value is ignored, so handlers report outcomes through the tool value or journal.

Member index ​

MemberPurpose
callRuns the handler. The return value is ignored, so handlers report outcomes through the tool value or journal.

Member details ​

call ​

Runs the handler.

The return value is ignored, so handlers report outcomes through the tool value or journal.

ts
InvocationHandler.call(input: Input, context: Context, execution: import("./tools.js").ToolExecutionContext): void

Runs the handler.

The return value is ignored, so handlers report outcomes through the tool value or journal.

ParameterTypePassingDescription
inputInputRequired—
contextContextRequired—
executionToolExecutionContextRequired—
Fields of execution
FieldTypeRequiredDescription
loggerScopedSubFlowLogger | undefinedOptionalRead-only. Delegate bound by Core to this actual invocation.
diagnosticsDiagnosticContext | undefinedOptionalRead-only. Diagnostic scope of the invocation, when recording is enabled.
mode"sync" | "async"RequiredRead-only. Declared execution discipline; mirrors whether the registry accepted an async tool.
invocationIdstringRequiredRead-only. Opaque invocation id shared by receipt, events and diagnostics.
signalAbortSignalRequiredRead-only. Non-optional cancellation for this invocation.
report(update: import("./execution/workflow.js").WorkflowNodeReport) => voidRequiredReports progress for the active node; Core supplies the execution identity.
createSubFlowLogger() => SubFlowLoggerRequiredBound to this context and owned by runtime; repeated calls in one visit return the same instance.

Returns: void.

Examples ​

Execute a local invocation the App has already selected ​

Beginner · Node.js

ts
import { executeInvocation } from '@jangts/agent-core/tools';
const state = { status: '' };
executeInvocation({ id: 'read-status', call(_input: {}, context: typeof state) {
  context.status = '服务正常';
} }, {}, state);
console.log(state.status);
js
import { executeInvocation } from '@jangts/agent-core/tools';
const state = { status: '' };
executeInvocation({ id: 'read-status', call(_input, context) {
        context.status = '服务正常';
    } }, {}, state);
console.log(state.status);

Connect the same request journal and cancellation signal ​

Configuration · Node.js

ts
import { executeInvocation } from '@jangts/agent-core/tools';
import { ContextJournal } from '@jangts/agent-core/journal';
const state = { status: '', journal: new ContextJournal(), signal: new AbortController().signal };
executeInvocation({ id: 'read-status', call(_input: {}, context: typeof state) { context.status = '服务正常'; } }, {}, state, {
  signal: context => context.signal,
  journal: context => context.journal,
  receipt: context => context.status,
});
console.log(state.journal.snapshot());
js
import { executeInvocation } from '@jangts/agent-core/tools';
import { ContextJournal } from '@jangts/agent-core/journal';
const state = { status: '', journal: new ContextJournal(), signal: new AbortController().signal };
executeInvocation({ id: 'read-status', call(_input, context) { context.status = '服务正常'; } }, {}, state, {
    signal: context => context.signal,
    journal: context => context.journal,
    receipt: context => context.status,
});
console.log(state.journal.snapshot());

API reference, usage examples and developer guides.