Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计提醒

truefoundry-volumes真实铸造卷

Agent Skill

truefoundry-volumes 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

235

周安装

10

GitHub Stars

公开资料未说明

下载量

82
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:truefoundry-volumes(真实铸造卷)
来源仓库:https://github.com/truefoundry/tfy-deploy-skills
仓库路径:skills/truefoundry-volumes
安装命令:
npx skills add https://github.com/truefoundry/tfy-deploy-skills --skill truefoundry-volumes
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/truefoundry/tfy-deploy-skills --skill truefoundry-volumes

简介

truefoundry-volumes 用于查找、检索和筛选相关信息,适合快速定位候选结果。

  • 适用于需要根据关键词或任务场景从来源线索中筛选信息的场景。
  • 通过 npx skills add 命令从 GitHub 仓库安装使用。
  • 安装前建议确认权限范围和维护状态,注意是否会触发联网或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Routing note: For ambiguous user intents, use the shared clarification templates in references/intent-clarification.md.

Volumes

Create and manage persistent volumes on TrueFoundry. Volumes provide shared, low-latency disk storage that persists across container restarts and can be mounted by multiple pods.

When to Use

Create, list, or mount persistent volumes on TrueFoundry, including dynamic provisioning, static PV attachment, storage class selection, and Volume Browser setup.

When NOT to Use

  • User needs large archival storage or global access -> suggest blob storage (S3/GCS) instead
  • User wants ephemeral scratch space -> use ephemeral_storage in resource config
  • User wants to deploy an app -> prefer deploy skill; ask if the user wants another valid path
  • User wants to manage secrets -> prefer secrets skill; ask if the user wants another valid path

Volumes vs Blob Storage

Help the user choose the right storage type:

AspectVolumesBlob Storage (S3/GCS)
Access methodStandard file system APIs (open, read, write)SDK clients (boto3, gcsfs)
SpeedFaster (local-disk latency)Slower (network round-trips)
DurabilityHighExtremely high (11 nines)
CostHigher per GBLower per GB
ScopeRegion/cluster limitedGlobal access
Best forShared model weights, training checkpoints, low-latency readsLarge archives, datasets accessed infrequently, cross-region data

Choose volumes when:

  • Multiple pods need concurrent file system access to the same data
  • You need file system semantics (locking, renaming, directory listing)
  • Low-latency access to frequently-read data (model weights, config files)
  • ML training checkpointing where write speed matters

Choose blob storage when:

  • Data is larger than a few hundred GB
  • Global or cross-region access is needed
  • Data is written once and read occasionally
  • Cost is the primary concern

Warning: Do not write to the same file path from multiple pods simultaneously -- this can cause data corruption. Coordinate writes across pods or use separate paths.

Prerequisites

Always verify before deploying:

  1. Credentials -- TFY_BASE_URL and TFY_API_KEY must be set (env or .env)
  2. Workspace -- TFY_WORKSPACE_FQN required. Never auto-pick. Ask the user if missing. Volumes are workspace-scoped: a volume created in one workspace can only be used by applications in that same workspace.
  3. Cluster storage class -- The target cluster must have a storage provisioner configured for the desired storage class.

For credential check commands and.env setup, see references/prerequisites.md.

Volume Types

Dynamic Volumes (Create New)

TrueFoundry provisions a new Kubernetes PersistentVolumeClaim (PVC). You specify size and storage class; the cluster allocator handles the rest.

Key properties:

  • Size is expandable after creation but cannot be reduced
  • Access mode is ReadWriteMany (multiple pods can mount simultaneously)
  • Reclaim policy is Retain (data persists even if the volume resource is deleted from TrueFoundry)

Static Volumes (Use Existing)

Mount a pre-existing Kubernetes PersistentVolume by name. Use this for:

  • AWS EFS -- Elastic File System via efs.csi.aws.com driver
  • AWS S3 -- S3 buckets via s3.csi.aws.com driver
  • GCP Filestore / GCS -- via gcsfuse.csi.storage.gke.io driver
  • Azure Files / Azure Blob -- via file.csi.azure.com or blob.csi.azure.com drivers

Static volumes require the PersistentVolume to already exist in the Kubernetes cluster. See the "Static Volume Setup" section below.

Storage Classes by Cloud Provider

For storage class tables by cloud provider (AWS, GCP, Azure) and discovery commands, see references/volume-storage-classes.md.

Creating a Volume

When using direct API, set TFY_API_SH to the full path of this skill's scripts/tfy-api.sh. See references/tfy-api-setup.md for paths per agent.

Before Creating

ALWAYS ask the user these questions in order:

  1. Volume type -- "Do you want to create a new volume or use an existing Kubernetes PersistentVolume?"

- Create new → proceed with dynamic volume questions below - Use existing → ask for the PersistentVolume name in Kubernetes, then skip to workspace

  1. Volume name -- What should the volume be called?
  2. Size -- How much storage? (integer in GB, e.g. 50). Cannot be reduced later.
  3. Storage class -- Which storage class? Present available options from the cluster.
  4. Workspace -- Which workspace? Volumes are workspace-scoped.
  5. Volume Browser -- "Do you want to enable Volume Browser? It provides a web UI to browse and manage files in your volume without SSH." (Optional)

- If yes, ask for: - Endpoint host -- The hostname where the browser will be accessible (e.g. my-cluster.example.truefoundry.com). Present available hosts from the cluster's base domain. - Endpoint path -- URL path prefix (optional, defaults to /) - Username -- Login username for the browser (optional, defaults to admin) - Password secret -- FQN of a TrueFoundry secret containing the browser password. If user doesn't have one, help them create it using the secrets skill first.

Present a summary and ask for confirmation:

Volume to create:
  Type:          Create new (dynamic)
  Name:          training-data
  Size:          100 GB
  Storage class: efs-sc
  Workspace:     my-cluster:my-workspace
  Volume Browser: Enabled
    Endpoint:    https://my-cluster.example.truefoundry.com/training-data/
    Username:    admin
    Password:    (secret: my-cluster:my-workspace:vol-browser-pw)

Note: Size can be expanded later but not reduced.
Proceed?

For volumes without Volume Browser:

Volume to create:
  Type:          Create new (dynamic)
  Name:          training-data
  Size:          100 GB
  Storage class: efs-sc
  Workspace:     my-cluster:my-workspace
  Volume Browser: Disabled

Note: Size can be expanded later but not reduced.
Proceed?

Via Tool Call

tfy_applications_create_deployment(
    manifest={"type": "volume", "name": "my-volume", "config": {"type": "dynamic", "size": 100, "storage_class": "efs-sc"}},
    options={"workspace_id": "ws-id-here"}
)

For Volume Browser fields and static volume tool-call examples, use the same fields as the Direct API examples below.

Via Direct API

Create new volume (without Volume Browser):

$TFY_API_SH PUT /api/svc/v1/apps '{
  "manifest": {
    "type": "volume",
    "name": "my-volume",
    "config": {
      "type": "dynamic",
      "size": 100,
      "storage_class": "efs-sc"
    }
  },
  "workspaceId": "ws-id-here"
}'

Create new volume (with Volume Browser):

$TFY_API_SH PUT /api/svc/v1/apps '{
  "manifest": {
    "type": "volume",
    "name": "my-volume",
    "config": {
      "type": "dynamic",
      "size": 100,
      "storage_class": "efs-sc"
    },
    "volume_browser": {
      "username": "admin",
      "password_secret_fqn": "my-cluster:my-workspace:vol-browser-pw",
      "endpoint": {
        "host": "my-cluster.example.truefoundry.com",
        "path": "/my-volume/"
      }
    }
  },
  "workspaceId": "ws-id-here"
}'

Using an Existing Kubernetes PersistentVolume

$TFY_API_SH PUT /api/svc/v1/apps '{
  "manifest": {
    "type": "volume",
    "name": "my-existing-vol",
    "config": {
      "type": "static",
      "persistent_volume_name": "pv-name-in-k8s"
    }
  },
  "workspaceId": "ws-id-here"
}'

Listing Volumes

Via Tool Call

tfy_applications_list(filters={"workspace_fqn": "my-cluster:my-workspace", "application_type": "volume"})

Via Direct API

# List volumes in a workspace
$TFY_API_SH GET '/api/svc/v1/apps?workspaceFqn=my-cluster:my-workspace&applicationType=volume'

# Get a specific volume by ID
$TFY_API_SH GET /api/svc/v1/apps/VOLUME_APP_ID

Presenting Volumes

Volumes in my-cluster:my-workspace:
| Name           | Size   | Storage Class | Status   | Created            |
|----------------|--------|---------------|----------|--------------------|
| training-data  | 100Gi  | efs-sc        | RUNNING  | 2026-02-10 14:30   |
| model-cache    | 50Gi   | premium-rwx   | RUNNING  | 2026-02-08 09:15   |

Attaching Volumes to Services and Jobs

Volumes are mounted into containers at a specified path. The volume must be in the same workspace as the application.

SDK (in deploy.py)

from truefoundry.deploy import Service, VolumeMount

service = Service(
    name="my-service",
    # ... image, ports, resources ...
    mounts=[
        VolumeMount(
            mount_path="/data",
            volume_fqn="my-cluster:my-workspace:my-volume",
        ),
    ],
)

API Manifest (Service)

{
  "manifest": {
    "kind": "Service",
    "name": "my-service",
    "image": {"type": "image", "image_uri": "my-image:latest"},
    "mounts": [
      {
        "type": "volume",
        "mount_path": "/data",
        "volume_fqn": "my-cluster:my-workspace:my-volume"
      }
    ],
    "resources": {
      "cpu_request": 0.5, "cpu_limit": 1.0,
      "memory_request": 512, "memory_limit": 1024
    }
  },
  "workspaceId": "ws-id-here"
}

API Manifest (Job)

{
  "manifest": {
    "kind": "Job",
    "name": "my-training-job",
    "image": {"type": "image", "image_uri": "my-training:latest"},
    "mounts": [
      {
        "type": "volume",
        "mount_path": "/data",
        "volume_fqn": "my-cluster:my-workspace:training-data"
      },
      {
        "type": "volume",
        "mount_path": "/checkpoints",
        "volume_fqn": "my-cluster:my-workspace:checkpoint-vol"
      }
    ],
    "resources": {
      "cpu_request": 4.0, "cpu_limit": 8.0,
      "memory_request": 16384, "memory_limit": 32768
    }
  },
  "workspaceId": "ws-id-here"
}

Volume FQN Format

The volume FQN follows the pattern: {cluster}:{workspace}:{volume-name}

Example: my-cluster:my-workspace:training-data

LLM Cache Volumes

For LLM deployments, TrueFoundry supports a cache_volume shorthand that creates a volume for model weight caching. This avoids re-downloading large models on every pod restart. See the llm-deploy skill for details.

# In LLM deployment manifest
cache_volume:
  cache_size: 50
  storage_class: efs-sc

Volume Sizing Guidelines

Use CaseRecommended SizeNotes
Small model cache (< 7B params)20-50 Gi2x the model size in FP16
Large model cache (7B-70B params)50-200 Gi2x the model size; account for multiple formats
Shared training dataset50-500 GiDepends on dataset size; leave 20% headroom
Checkpointing20-100 GiDepends on checkpoint frequency and model size
General shared storage10-50 GiStart small, expand as needed

Sizing tips:

  • Always add 20% headroom above your expected data size
  • Volume size can be expanded later but never reduced -- start conservatively if unsure
  • For model caching, use 2x the model's disk size to account for download + extraction
  • Monitor volume usage after deployment and expand proactively before hitting limits

Static Volume Setup

For detailed setup instructions for AWS EFS, AWS S3, GCP GCS Fuse, and Azure Files/Blob, see references/static-volume-setup.md.

Volume Browser

For Volume Browser configuration fields, setup steps, and access instructions, see references/volume-browser-setup.md.

<success_criteria>

  • The agent asked "create new or use existing?" before proceeding
  • The agent has confirmed volume name, size, storage class, and workspace with the user before creating
  • The agent asked whether to enable Volume Browser and collected endpoint/password details if yes
  • The volume was successfully created and is in RUNNING status
  • The user can list all volumes in their target workspace
  • The user can attach the volume to a service or job using the correct volume FQN
  • The agent has advised on appropriate sizing based on the user's use case
  • The user understands the difference between volumes and blob storage for their scenario

</success_criteria>

Composability

  • Before deploying with volumes: Use workspaces skill to get workspace FQN, then create the volume in the same workspace
  • With secrets skill: Create a password secret before enabling Volume Browser (password_secret_fqn is required)
  • With deploy skill: After creating a volume, add VolumeMount to the service's deploy.py to attach it
  • With llm-deploy skill: Use cache_volume in LLM deployment manifests for model weight caching
  • With jobs skill: Mount volumes to training jobs for checkpointing and shared data access
  • With applications skill: List volumes alongside other application types to see what storage exists
  • After creating: Use applications skill to verify the volume was created successfully

Error Handling

ErrorCauseFix
Volume not foundWrong name or workspaceVerify FQN; volumes are workspace-scoped
Storage class not availableCluster missing provisionerCheck GET /api/svc/v1/clusters/CLUSTER_ID for available classes
Size cannot be reducedPVC limitationCreate new smaller volume and migrate data
Workspace mismatchVolume in different workspaceCreate volume in same workspace as the app
Permission deniedAPI key lacks accessCheck API key permissions for this workspace
PV not found (static)K8s PV doesn't existVerify with kubectl get pv <pv-name>
Data corruptionMultiple pods writing same pathUse per-pod sub-directories (e.g., /data/pod-{POD_NAME}/)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.31%
按下载量换算31

Claude

27.82%
按下载量换算23

Cursor

17.8%
按下载量换算15

Gemini CLI

9.54%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills