@dexto/storage
选择构建图像的混凝土节点存储助手和配置方案 DextoStores
从本地后端.
核心项目@dexto/core)拥有打入的域名存储合同,例如 ConversationStore, (中文(简体) ),
SessionStore, (中文(简体) ), MemoryStore, (中文(简体) ), ArtifactStore,以及 ToolStateStore。此软件包提供了节点
后端执行,图像执行可以使用内部来构成 a DextoStores
执行.
产品层(CLI/server/apps)可以在图像内使用这些助手,或者提供
本地语言 DextoStores 直接执行。 核心代码应该取决于打字店,而不是这些
后端助手课.
此套件导出什么
- 示马斯 (用于配置解析 + UI):
- 从
@dexto/storage/schemas用于仅用于浏览器安全计划导出.
- 从
- 具体执行 (节点运行时间):
LocalBlobStore, (中文(简体) ),MemoryBlobStore, (中文(简体) ),SQLiteStore, (中文(简体) ),PostgresStore, (中文(简体) ),RedisStore等 (中文(简体) ).
在图像中使用助手
import type { DextoImage } from '@dexto/agent-config';
import {
BackendDextoStores,
DatabaseBackedArtifactStore,
DatabaseBackedSessionStore,
// ...other typed store adapters
} from '@dexto/core/storage';
import {
StorageSchema,
LocalBlobStore,
LocalBlobStoreSchema,
SQLiteStore,
SqliteDatabaseSchema,
MemoryCacheStore,
} from '@dexto/storage';
export const myImage: DextoImage = {
/* metadata/defaults/tools/hooks/compaction/logger ... */
storage: {
configSchema: StorageSchema,
async createStores(config, logger) {
const blobStore = new LocalBlobStore(LocalBlobStoreSchema.parse(config.blob), logger);
const database = new SQLiteStore(SqliteDatabaseSchema.parse(config.database), logger);
const cache = new MemoryCacheStore();
return new BackendDextoStores(
{
sessions: new DatabaseBackedSessionStore(database, cache),
artifacts: new DatabaseBackedArtifactStore(blobStore),
// ...provide every DextoStoreMap domain
},
{
async connect() {
await cache.connect();
await database.connect();
await blobStore.connect();
},
async disconnect() {
await Promise.all([cache.disconnect(), database.disconnect(), blobStore.disconnect()]);
},
isConnected() {
return cache.isConnected() && database.isConnected() && blobStore.isConnected();
},
},
);
},
},
};
示马斯和 .passthrough()
代理配置解析需要接受 自定义 后端带有提供者特定字段,所以 顶级存储配置图 信封 只有歧视者能证实:
storage:
blob:
type: local
storePath: ./data/blobs
database:
type: sqlite
path: ./data/agent.db
cache:
type: in-memory
这些信封的用法 .passthrough() 所以,额外的字段 幸存的初步剖析。 详细
校验在装入的图像内进行 storage.createStores(...) 执行.