先完成 安装与凭据配置,安装 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 不向外部遥测服务发送提示词或令牌。
发现和读取共享一个绑定。普通绑定默认动态更新;显式固定绑定及复用快照的重试始终展示固定目录。已发出的模型请求不会被修改,更新指令前缀可能影响提示词缓存。