mcpField
T
tigris-agent-kit

tigris-agent-kit

github.com/tigrisdataAgent 工作流23.2k 次安装14 周前更新
代码仓库

关于 tigris-agent-kit

面向在 Tigris 上构建 Agent 工作流的开发者,将存储和 IAM 操作组合为副本、工作区、检查点和协调功能。支持隔离存储、状态恢复及基于 Webhook 的事件触发。

主要功能

  1. 01创建隔离的存储桶副本
  2. 02为 Agent 配置独立工作区
  3. 03快照检查点并从中恢复
  4. 04通过 Webhook 配置事件协调
  5. 05配置作用域凭据与清理

适用场景

  1. 01为多个 Agent 提供独立数据副本
  2. 02创建带对象 TTL 的临时工作区
  3. 03保存 Agent 状态并从快照分支
  4. 04在 Agent 写入结果后触发下游流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tigrisdata/skills --skill tigris-agent-kit

安装后在 Claude Code 中输入/tigris-agent-kit确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

metadata.json
README.md
resources/
checkpoints.md
coordination.md
forks.md
workspaces.md

详细介绍

Tigris Agent Kit

面向 Tigris 上 AI Agent 的高级存储工作流。将 @tigrisdata/storage 和 @tigrisdata/iam 的基础功能组合为四个构建模块:分支副本、工作区、检查点和协作。

前提条件

开始任何操作之前,请确保已安装 Tigris CLI:

tigris help || npm install -g @tigrisdata/cli

如果需要安装,请告知用户:“我正在安装 Tigris CLI(@tigrisdata/cli),以便我们使用 Tigris 对象存储。”

然后安装 agent-kit 软件包:

npm install @tigrisdata/agent-kit

配置

所有函数都接受可选的 config 参数。省略时,SDK 会从环境变量中读取配置:

TIGRIS_STORAGE_ACCESS_KEY_ID=tid_...
TIGRIS_STORAGE_SECRET_ACCESS_KEY=tsec_...

需要时,可显式传入配置:

const config = {
  accessKeyId: 'tid_...',
  secretAccessKey: 'tsec_...',
};

所有函数都会返回 TigrisResponse<T>——一个由 { data: T } 或 { error: Error } 组成的判别联合类型。请务必先检查 error。

快速参考

构建模块用途函数
分支副本创建 N 个共享数据集的隔离副本createForks、teardownForks
工作区为每个 Agent 提供带 TTL 的专用存储桶createWorkspace、teardownWorkspace
检查点快照存储桶状态,并还原为分支副本checkpoint、restore、listCheckpoints
协作通过 Webhook 构建事件驱动的流水线setupCoordination、teardownCoordination

如何选择

场景使用
启动 N 个各自需要数据集副本的 Agent分支副本
为一个 Agent 提供临时存储桶,并在一天后自动清理工作区
在运行期间保存 Agent 状态,以便之后从中创建分支检查点 + 还原
上游 Agent 写入结果后触发下游 Agent协作

分支副本 — 并行 Agent 副本

每个分支副本都是一个独立的存储桶,存储彼此隔离。采用写时复制机制,无论大小都能即时创建,且不会重复存储数据。基础存储桶必须启用快照。

import { createForks, teardownForks } from '@tigrisdata/agent-kit';

const { data: forkSet, error } = await createForks('my-dataset', 3, {
  prefix: 'experiment-run-42',
  credentials: { role: 'Editor' },
});
if (error) throw error;

for (const fork of forkSet.forks) {
  // fork.bucket — the bucket name
  // fork.credentials?.accessKeyId / secretAccessKey — scoped per fork
}

// Revokes credentials and deletes all fork buckets
await teardownForks(forkSet);

详细选项、生命周期和使用模式:请参阅 ./resources/forks.md。

工作区 — 每个 Agent 独立的存储桶

为一个 Agent 配置专用存储桶。可选的 TTL 会让对象自动过期;可选的限定范围凭据可确保遵循最小权限原则。

import { createWorkspace, teardownWorkspace } from '@tigrisdata/agent-kit';

const { data: workspace } = await createWorkspace('agent-workspace-abc', {
  ttl: { days: 1 },
  enableSnapshots: true,
  credentials: { role: 'Editor' },
});

// Use workspace.bucket and workspace.credentials with @tigrisdata/storage

await teardownWorkspace(workspace);

详细选项、TTL 行为和使用模式:请参阅 ./resources/workspaces.md。

检查点 — 快照与还原

捕获某个时间点的存储桶状态;还原操作会从该快照创建写时复制分支副本。原始存储桶不会受到影响。

import { checkpoint, restore, listCheckpoints } from '@tigrisdata/agent-kit';

const { data: ckpt } = await checkpoint('training-data', { name: 'epoch-50' });

const { data: list } = await listCheckpoints('training-data');

const { data: restored } = await restore(
  'training-data',
  ckpt.snapshotId,
  { forkName: 'training-data-retry' },
);
// restored.bucket — independent fork at that point in time

详细选项和回滚模式:请参阅 ./resources/checkpoints.md。

协作 — 事件驱动的流水线

配置存储桶通知,让写入操作触发 Webhook,而无需轮询。可用它串联 Agent:Agent A 写入结果后,Tigris 会触发 Webhook,随后 Agent B 启动。

import { setupCoordination, teardownCoordination } from '@tigrisdata/agent-kit';

await setupCoordination('pipeline-bucket', {
  webhookUrl: 'https://my-service.com/webhook',
  filter: 'WHERE `key` REGEXP "^results/"',
  auth: { token: 'my-webhook-secret' },
});

await teardownCoordination('pipeline-bucket');

过滤语法、Webhook 身份验证和流水线模式:请参阅 ./resources/coordination.md。

API 参考

分支副本
函数说明
createForks(baseBucket, count, options?)创建快照 + 创建 N 个分支副本 + 配置限定范围的凭据
teardownForks(forkSet, options?)撤销凭据 + 删除分支副本
工作区
函数说明
createWorkspace(name, options?)创建存储桶 + 设置 TTL + 配置限定范围的凭据
teardownWorkspace(workspace, options?)撤销凭据 + 删除存储桶
检查点
函数说明
checkpoint(bucket, options?)为存储桶创建快照,并返回快照 ID
restore(bucket, snapshotId, options?)从快照创建分支副本
listCheckpoints(bucket, options?)列出存储桶的所有快照
协作
函数说明
setupCoordination(bucket, options)配置存储桶通知
teardownCoordination(bucket, options?)清除存储桶通知

关键规则

始终: 先检查 result.error,再检查 result.data | 调用对应的 teardown* 撤销凭据并删除存储桶——Agent 很快就会泄漏存储桶 | 在调用 createForks 或 checkpoint 前,为基础存储桶启用快照 | 使用按分叉/工作区限定的凭据,避免一个 Agent 遭到入侵后导致其他 Agent 暴露

切勿: 在多个 Agent 之间重复使用同一个共享访问密钥——这会让限定凭据失去意义 | 在长时间运行的服务中跳过清理——未清理的存储桶会不断累积费用 | 假设 restore 会修改原存储桶——它会创建一个新的分叉

常见错误

错误修复方法
createForks 失败,并提示“snapshots not enabled”使用 enableSnapshot: true 重新创建基础存储桶
Agent 运行后未清理分叉始终在 finally 块中将 createForks 与 teardownForks 配对调用
Webhook 从未触发检查 filter 语法——它必须是针对 key、event 等字段的有效 SQL WHERE 子句
工作区 TTL 未删除存储桶TTL 会使 对象 过期,而不是删除存储桶。调用 teardownWorkspace 删除存储桶
恢复的存储桶为空调用 restore 前,使用 listCheckpoints 确认 snapshotId 存在

相关技能

  • tigris-snapshots-forking — @tigrisdata/storage 中更底层的快照与分叉原语
  • tigris-bucket-management — 存储桶创建、区域和快照配置
  • tigris-security-access-control — IAM、限定密钥和密钥轮换
  • file-storage — 用于在分叉或工作区存储桶中读取/写入数据的核心 @tigrisdata/storage SDK

官方文档

评论

支持 Markdown