@auth/agent

中文文档
0.6.2发布于 2026/06/12MITTypeScriptES Module构建来源已验证近 30 天下载 1.7万

Auth代理协议客户SDK——代理身份、登记和能力授权

中文使用文档
文档目录13 节
  1. 安装
  2. 快速启动
  3. AI 框架整合
  4. 维塞尔 AI SDK
  5. OpenAI 函数调用
  6. 雅典克劳德
  7. 处理错误
  8. SDK 工具
  9. 过滤工具
  10. 子路径导入
  11. 制约因素(第2.13节)
  12. 存储
  13. 许可证

@auth/代理服务器

客户端 SDK 用于 Auth 代理协议 代理人身份、登记和能力授权.

安装

npm install @auth/agent

快速启动

import { AgentAuthClient } from "@auth/agent";

const client = new AgentAuthClient({
  directoryUrl: "https://directory.example.com",
});

// Discover a provider
const config = await client.discoverProvider("https://api.example.com");

// Connect an agent with constrained capabilities
const agent = await client.connectAgent({
  provider: "https://api.example.com",
  capabilities: ["read_data", { name: "transfer_money", constraints: { amount: { max: 1000 } } }],
  name: "my-assistant",
});

// Execute a capability
const result = await client.executeCapability({
  agentId: agent.agentId,
  capability: "read_data",
  arguments: { id: "user-123" },
});

AI 框架整合

维塞尔 AI SDK

toAISDKTools 自动进口 jsonSchema 从 ai 软件包。 如果喜欢的话,明确通过:

import { generateText } from "ai";
import { AgentAuthClient, getAgentAuthTools, toAISDKTools } from "@auth/agent";

const client = new AgentAuthClient();
const tools = await toAISDKTools(getAgentAuthTools(client));

const { text } = await generateText({
  model: openai("gpt-4o"),
  tools,
  prompt: "Transfer $50 to Alice",
});

通过 jsonSchema 明确( 避免动态导入) :

import { generateText, jsonSchema } from "ai";
import { AgentAuthClient, getAgentAuthTools, toAISDKTools } from "@auth/agent";

const client = new AgentAuthClient();
const tools = await toAISDKTools(getAgentAuthTools(client), { jsonSchema });

OpenAI 函数调用

import { AgentAuthClient, getAgentAuthTools, toOpenAITools } from "@auth/agent";

const client = new AgentAuthClient();
const { definitions, execute } = toOpenAITools(getAgentAuthTools(client), {
  strict: true, // structured outputs — prevents hallucinated arguments
});

const res = await openai.chat.completions.create({
  model: "gpt-4o",
  tools: definitions,
  messages,
});

for (const call of res.choices[0].message.tool_calls ?? []) {
  const result = await execute(call.function.name, JSON.parse(call.function.arguments));
}

雅典克劳德

import { AgentAuthClient, getAgentAuthTools, toAnthropicTools } from "@auth/agent";

const client = new AgentAuthClient();
const { definitions, processToolUse } = toAnthropicTools(getAgentAuthTools(client));

const res = await anthropic.messages.create({
  model: "claude-sonnet-4-20250514",
  max_tokens: 1024,
  tools: definitions,
  messages,
});

const toolUseBlocks = res.content.filter((b) => b.type === "tool_use");
if (toolUseBlocks.length > 0) {
  const results = await processToolUse(toolUseBlocks);
  messages.push({ role: "assistant", content: res.content }, { role: "user", content: results });
}

处理错误

所有适配器按结构将工具执行错误包裹 { error, code } 对象而不是投掷。 这让模特们能优雅地恢复:

{ "error": "Capability not granted", "code": "capability_not_granted" }

SDK 工具

SDK曝光了映射到代理生命周期的协议工具:

工具说明
list_providers已发现/ 已配置的提供者列表
search_providers有意查询登记册
discover_provider通过 URL 查找提供者
list_capabilities名单提供者能力
describe_capability获得全部能力定义
connect_agent登记代理人(有可选限制)
execute_capability执行授予的能力
request_capability请求增加能力
agent_status检查代理地位和赠款
sign_jwt手动签名代理 JWT
disconnect_agent撤销代理
reactivate_agent重新激活过期的代理
rotate_agent_key旋转代理键盘
rotate_host_key旋转主机密钥pair
enroll_host使用入学标志输入主机

过滤工具

使用 filterTools 只暴露您的代理工具:

import { getAgentAuthTools, filterTools } from "@auth/agent";

const allTools = getAgentAuthTools(client);

const minimal = filterTools(allTools, { only: ["execute_capability", "agent_status"] });
const safe = filterTools(allTools, { exclude: ["sign_jwt", "rotate_host_key"] });

子路径导入

对于只需要工具+适配器(没有客户端、加密或存储)的更轻的导入:

import { getAgentAuthTools, toOpenAITools, filterTools } from "@auth/agent/tools";

制约因素(第2.13节)

连接或请求限制参数值的能力时通过限制 :

await client.connectAgent({
  provider: "https://api.example.com",
  capabilities: [
    "read_data",
    {
      name: "transfer_money",
      constraints: {
        amount: { max: 1000, min: 1 },
        currency: { in: ["USD", "EUR"] },
      },
    },
  ],
});

受约束的赠款退还 capabilityGrants[].constraints。 。 。 .

存储

SDK使用可插件存储,用于持续的主机身份和代理连接:

import { AgentAuthClient } from "@auth/agent";

const client = new AgentAuthClient({
  storage: myCustomStorage, // implements Storage interface
});

内建: MemoryStorage (默认,非持久性). 对于长期运行的应用程序,执行 Storage 与您首选的后端( 数据库、 文件系统、 KV 存储等) 接口 :

方法组说明
getHostIdentity 编号 : setHostIdentity 编号 : deleteHostIdentity主机键盘和身份
getAgentConnection 编号 : setAgentConnection 编号 : deleteAgentConnection代理连接状态
getProviderConfig 编号 : setProviderConfig 编号 : listProviderConfigs缓存提供者发现文件

CLI 软件包 (@auth/agent-cli)包括基于文件的文件 FileStorage 执行,休息时可选择加密——见 packages/cli/src/storage.ts 参考执行.

许可证

麻省理工学院

版本与发布记录

@auth/agent 共发布 9 个版本,首次发布于 2026/03/18;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.2latest2026/06/124 个月前
0.5.12026/05/165 个月前
0.4.62026/04/077 个月前
0.4.52026/03/297 个月前
0.4.42026/03/297 个月前
0.4.32026/03/247 个月前

关于 @auth/agent 的常见问题

@auth/agent 是什么?

Auth代理协议客户SDK——代理身份、登记和能力授权

如何安装 @auth/agent?

在项目目录运行 npm install @auth/agent,或使用 pnpm add / yarn add / bun add。

@auth/agent 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@auth/agent 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@auth/agent 可以商用吗?

@auth/agent 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@auth/agent 的下载量有多少?

根据 npm 官方下载统计,@auth/agent 在 2026/10/07 – 2026/11/05 这 30 天内被下载 16,668 次,日均约 556 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@auth/agent 还在维护吗?

最新版本 0.6.2 发布于 2026/06/12(4 个月前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/03/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。