Skip to content
English

ToolJournal ​

CORE · interface · 类型合同

Request-local execution receipts; the host decides their domain content.

导入 ​

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

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

定义 ​

ts
interface ToolJournal

字段结构 ​

字段类型必需说明
beginTool(request: ToolJournalStart) => string必需Opens a receipt and returns the invocation id later passed to finishTool.
finishTool(request: ToolJournalFinish) => void必需Closes the receipt; must be called exactly once per opened invocation.

成员目录 ​

成员用途
beginToolOpens a receipt and returns the invocation id later passed to finishTool.
finishToolCloses the receipt; must be called exactly once per opened invocation.

成员详情 ​

beginTool ​

Opens a receipt and returns the invocation id later passed to finishTool.

ts
ToolJournal.beginTool(request: ToolJournalStart): string

Opens a receipt and returns the invocation id later passed to finishTool.

参数类型传递说明
requestToolJournalStart必需—
request 的字段
字段类型必需说明
toolIdstring必需Tool being invoked.
inputunknown必需Parsed input; stored as-is so the host can build its own domain record.
invocationPartial<InvocationMetadata> | undefined可省略What the caller already knows. The journal fills gaps and generates an id when absent.

返回: string。

finishTool ​

Closes the receipt; must be called exactly once per opened invocation.

ts
ToolJournal.finishTool(request: ToolJournalFinish): void

Closes the receipt; must be called exactly once per opened invocation.

参数类型传递说明
requestToolJournalFinish必需—
request 的字段
字段类型必需说明
invocationIdstring必需Invocation opened by beginTool.
status"error" | "success" | "cancelled"必需Terminal status; cancelled is distinct from error.
valueunknown必需Produced value on success; failure detail on error; ignored for cancellation.

返回: void。

使用示例 ​

执行 App 已选定的本地调用 ​

入门 · 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);

接入同一请求 journal 和取消信号 ​

配置 · 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());

相关策略源码 ​

相关定义 ​

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