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

Pydantic AI 集成

在每次模型请求前刷新发现列表,并提供带版本校验的加载工具。

本页目录接入适配器继续阅读

先完成 安装与凭据配置,安装 pydantic-ai extra。示例通过 SKIVA_MODEL 读取模型标识,模型供应商依赖和 API 凭据由宿主配置;该 extra 不会安装所有供应商。适配器针对 Pydantic AI 2.59.0 验证。

接入适配器

import asyncio
import os
from pydantic_ai import Agent
from pydantic_ai.capabilities import Caching
from skiva_sdk import SkivaClient, SkillSession
from skiva_sdk.integrations.pydantic_ai import SkivaSkills

async def main():
    agent = Agent(
        os.environ["SKIVA_MODEL"],
        name="skiva-agent",
        deps_type=SkillSession,
        capabilities=[Caching(), SkivaSkills()],
    )
    async with SkivaClient.from_env() as client, agent:
        async with client.bind(consistency="dynamic") as skills:
            result = await agent.run("Review this change", deps=skills)
            print(result.output)

asyncio.run(main())

SkivaSkills 提供具名动态指令块,使用 rewrite 语义在每次模型请求前刷新发现列表,绕过普通轮询间隔。同时注册 load_skill、read_skill_file,要求传入两个预期版本字段。版本变化或未找到转换为结构化工具结果;权限和网络错误直接中止,不鼓励沿用旧内容。不会删除历史工具返回或派生结论。指令在供应商请求中的具体位置由 Pydantic AI 和供应商决定。

通过 SkivaSkills(get_session=lambda deps: deps.skills) 保留业务依赖。每个 run 应使用独立会话;适配器不保存跨 run 的可变状态。一个 Agent 只挂载一个 SkivaSkills(工具名称固定)。这是独立发现和加载工具集成,不是原生 Harness Skills 的工作区后端,也不拦截 shell 或直接文件访问。追踪由宿主应用配置,SDK 不向外部遥测服务发送提示词或令牌。

发现和读取共享一个绑定。普通绑定默认动态更新;显式固定绑定及复用快照的重试始终展示固定目录。已发出的模型请求不会被修改,更新指令前缀可能影响提示词缓存。

继续阅读

Python SDK 快速开始 · 快照与更新策略 · 导出文件与框架接入 · SDK 参考与测试

GitHub · skiva-python