跳转到正文
文档ENGitHub
SKIVA 使用手册/ Python SDK

Python SDK 快速开始

安装 SDK,获取带版本的 Skill 列表并加载正文。

本页目录安装与前置条件发现与加载继续阅读

安装与前置条件

适用于 Python 3.11+,当前实现版本 0.2.0;包名 skiva-sdk,导入名 skiva_sdk。已发布到 PyPI。以下命令固定安装 0.2.0;升级时显式替换版本号。Windows 激活虚拟环境使用 .venv\Scripts\Activate.ps1。

python -m venv .venv
source .venv/bin/activate
python -m pip install "skiva-sdk==0.2.0"
# Pydantic AI adapter (2.59.0)
python -m pip install "skiva-sdk[pydantic-ai]==0.2.0"

使用启用的 Agent Profile 所属客户端凭据,不能使用管理员或登录会话令牌。地址填写服务端地址或反向代理前缀,不包含 /distribution/v1。可信本地环境之外使用 HTTPS。

export SKIVA_SERVER_URL=http://localhost:8080
export SKIVA_CLIENT_TOKEN=your-client-credential

Profile 需要有已发布快照及 Skill 访问权限。SDK 的动态模式仍遵守服务端 Profile 的固定版本配置,不绕过权限。

先在 Agent 接入 创建 Profile 与客户端身份。SDK 直接访问分发 API,不需要 FUSE。

发现与加载

import asyncio
from skiva_sdk import SkivaClient

async def main():
    async with SkivaClient.from_env() as client:
        async with client.bind() as skills:
            catalog = await skills.catalog()
            print(catalog.render())
            if catalog.skills:
                content = await skills.load_skill(
                    catalog.skills[0].name,
                    expected_snapshot_id=catalog.ref.snapshot_id,
                    expected_catalog_digest=catalog.catalog_digest,
                )
                print(content.render())

asyncio.run(main())

Catalog 包含 SnapshotRef、不可变 Skill 元数据与 catalog_digest。SkillContent 包含实际 ref、目录摘要、清单相对路径、文件摘要和正文。输出包裹结构会转义 XML,但名称和描述仍来自 Skill 发布者;转义不意味着它们可信,更不意味着可以覆盖系统策略。

发现提示词要求模型按相等性比较版本,不比较版本号大小;不一致时重新加载。回滚与向前更新采用相同行为。同一快照下可见文件集合变化也会改变 catalog_digest。这是面向模型的降级提示机制,不保证模型忘记旧指令。

调用 catalog.render() 只生成文本。宿主应用负责把它放入模型请求;使用 Pydantic AI 适配器 可自动接入。

继续阅读

快照与更新策略 · Pydantic AI 集成 · 导出文件与框架接入 · SDK 参考与测试

GitHub · skiva-python