AgentCachePort
CORE · interface · 类型合同
App-owned storage. Capacity, expiry, serialization and user isolation belong to the App.
导入
ts
import type { AgentCachePort } from '@jangts/agent-core/engine';js
/** @typedef {import('@jangts/agent-core/engine').AgentCachePort} AgentCachePort */其他公开入口:@jangts/agent-core、@jangts/agent-core/engine、@jangts/agent-core/types、@jangts/agent-core/structs。
定义
ts
interface AgentCachePort字段结构
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
supportsPersistence | boolean | undefined | 可省略 | 只读。见类型定义及调用场景。 |
get | (address: AgentCacheAddress) => Promise<unknown> | 必需 | 见类型定义及调用场景。 |
has | (address: AgentCacheAddress) => Promise<boolean> | 必需 | 见类型定义及调用场景。 |
set | (address: AgentCacheAddress, value: unknown) => Promise<void> | 必需 | 见类型定义及调用场景。 |
delete | (address: AgentCacheAddress) => Promise<boolean> | 必需 | 见类型定义及调用场景。 |
clear | (partition: Omit<AgentCacheAddress, "key">) => Promise<void> | 必需 | 见类型定义及调用场景。 |
成员目录
| 成员 | 用途 |
|---|---|
get | 完整输入输出见下方重载。 |
has | 完整输入输出见下方重载。 |
set | 完整输入输出见下方重载。 |
delete | 完整输入输出见下方重载。 |
clear | 完整输入输出见下方重载。 |
成员详情
get
ts
AgentCachePort.get(address: AgentCacheAddress): Promise<unknown>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
address | AgentCacheAddress | 必需 | — |
address 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
nodeId | string | 必需 | 只读。见类型定义及调用场景。 |
key | string | 必需 | 只读。见类型定义及调用场景。 |
persistence | boolean | 必需 | 只读。见类型定义及调用场景。 |
signal | AbortSignal | 必需 | 只读。见类型定义及调用场景。 |
返回: Promise<unknown>。
等待后的值: unknown。
has
ts
AgentCachePort.has(address: AgentCacheAddress): Promise<boolean>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
address | AgentCacheAddress | 必需 | — |
address 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
nodeId | string | 必需 | 只读。见类型定义及调用场景。 |
key | string | 必需 | 只读。见类型定义及调用场景。 |
persistence | boolean | 必需 | 只读。见类型定义及调用场景。 |
signal | AbortSignal | 必需 | 只读。见类型定义及调用场景。 |
返回: Promise<boolean>。
等待后的值: boolean。
set
ts
AgentCachePort.set(address: AgentCacheAddress, value: unknown): Promise<void>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
address | AgentCacheAddress | 必需 | — |
value | unknown | 必需 | — |
address 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
nodeId | string | 必需 | 只读。见类型定义及调用场景。 |
key | string | 必需 | 只读。见类型定义及调用场景。 |
persistence | boolean | 必需 | 只读。见类型定义及调用场景。 |
signal | AbortSignal | 必需 | 只读。见类型定义及调用场景。 |
返回: Promise<void>。
等待后的值: void。
delete
ts
AgentCachePort.delete(address: AgentCacheAddress): Promise<boolean>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
address | AgentCacheAddress | 必需 | — |
address 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
nodeId | string | 必需 | 只读。见类型定义及调用场景。 |
key | string | 必需 | 只读。见类型定义及调用场景。 |
persistence | boolean | 必需 | 只读。见类型定义及调用场景。 |
signal | AbortSignal | 必需 | 只读。见类型定义及调用场景。 |
返回: Promise<boolean>。
等待后的值: boolean。
clear
ts
AgentCachePort.clear(partition: Omit<AgentCacheAddress, "key">): Promise<void>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
partition | Omit<AgentCacheAddress, "key"> | 必需 | — |
partition 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
signal | AbortSignal | 必需 | 只读。见类型定义及调用场景。 |
nodeId | string | 必需 | 只读。见类型定义及调用场景。 |
persistence | boolean | 必需 | 只读。见类型定义及调用场景。 |
返回: Promise<void>。
等待后的值: void。
使用示例
- Agent:先运行,再逐步绑定 Tool 与依赖:Engine 执行有界循环;绑定 Workflow 后,每次只传状态中变化的数据。
- 复用基础 Workflow 与 Agent 分支:add 保留旧 Workflow,生成组合后的新 Workflow;fork 继承已有绑定及分支来源。
- 一次绑定,单次多模型与跨次切换:构造时提供稳定模型配置;请求用配置 ID 选择,不反复注入 Provider。
- 真实工具调用与请求内运行时:Core 注册并执行真实工具,返回带 invocation 的回执;业务授权由 App 注册的实现拥有。
- 装饰器:处理类与已有实例方法:类装饰代办定义实例化,方法装饰绑定原对象;输出仍走原 define、构造和 bind。
一个普通步骤即可运行
入门 · Node.js
ts
import { AgentCoreEngine } from '@jangts/agent-core/engine';
const agent = new AgentCoreEngine<string>();
const answer = await agent.run(() => ({ type: 'complete', value: '你好,Core' }));
console.log(answer);js
import { AgentCoreEngine } from '@jangts/agent-core/engine';
const agent = new AgentCoreEngine();
const answer = await agent.run(() => ({ type: 'complete', value: '你好,Core' }));
console.log(answer);增加显式 Workflow,仍然调用 run
配置 · Node.js
ts
import { AgentCoreEngine, defineWorkflow, route } from '@jangts/agent-core/engine';
type State = { name: string; answer?: string };
const workflow = defineWorkflow<State, string>({
id: 'greeting',
nodes: [{
id: 'greet', description: '根据本次姓名生成问候', startsRound: true,
run: state => ({ answer: '你好,' + state.name }),
routes: [route.deliver('answer')],
}],
});
const agent = new AgentCoreEngine({ workflow });
console.log(await agent.run({ name: 'Ivan' }));
console.log(await agent.run({ name: '访客' }));js
import { AgentCoreEngine, defineWorkflow, route } from '@jangts/agent-core/engine';
const workflow = defineWorkflow({
id: 'greeting',
nodes: [{
id: 'greet', description: '根据本次姓名生成问候', startsRound: true,
run: state => ({ answer: '你好,' + state.name }),
routes: [route.deliver('answer')],
}],
});
const agent = new AgentCoreEngine({ workflow });
console.log(await agent.run({ name: 'Ivan' }));
console.log(await agent.run({ name: '访客' }));