@agentskit/net

中文文档
0.2.4发布于 2026/10/24MITTypeScriptESM + CJS构建来源已验证近 30 天下载 2.6万

AgentsKit 生态系统的可耐性、可约束性和SSRF-安全HTTP:用Retry-after重试、超时、有尺寸限制的身体、SSE解析和私人地址检查。 在Node, Bun, Deno,浏览器和边缘运行.

中文使用文档
文档目录12 节
  1. 已核实的证据
  2. 如何适应生态系统
  3. 安装
  4. 快速实例
  5. 特征
  6. 可撤销的等待和最后期限
  7. 生态系统
  8. 贡献者
  9. 许可证
  10. 文档
  11. 成熟性和相容性
  12. 捐款

@ agentskit/net (英语)

简介 : concise-package

AgentsKit

用于代理的HTTP管道,在一个小包中:带有后置和 Retry-After, 任意超时, 限定对象读取, 服务器发送事件, 以及 SSRF 地址检查。 Web API只运行于节点, Bun, Deno,浏览器和边缘运行时间.

npm version npm downloads bundle size license stability GitHub stars

标记 : agentskit • 妇女 ai-agents • 妇女 fetch • 妇女 retry • 妇女 sse • 妇女 ssrf • 妇女 timeout • 妇女 edge

已核实的证据

如何适应生态系统

适配器、工具和其他代理Kit存储器 各自携带自己的重试回路, Retry-After 解析,SSE行分解器和私人-IP检查,每条都有不同的bug. @agentskit/net 拥有它们,在 eventsource-parser 财务报告和审定财务报表 ipaddr.js,因此,呼叫者导入一个已测试的执行.

  • 探员Kit数字 : @agentskit/adapters (流线、回流)和 @agentskit/tools (比对用户提供的URL)是预定的消费者.
  • 书记官处: 随时可以使用的代理和模板 登记. agentskit.io。 。 。 .
  • 游戏本: 生产模式 游戏本. agentskit.io。 。 。 .

文档 : 软件包指南 • 妇女 代理交接

安装

npm install @agentskit/net

快速实例

import { assertPublicUrl, fetchWithRetry, parseSSEResponse, readJson } from '@agentskit/net'

// Refuse private, loopback and metadata addresses before fetching a user-supplied URL.
const { url } = await assertPublicUrl('https://api.example.com/v1/models')

// Idempotent requests retry on 429/5xx, honouring Retry-After; each attempt times out.
const models = await readJson(await fetchWithRetry(url, undefined, { timeoutMs: 10_000 }), {
  maxBytes: 1_000_000,
})
console.log(models)

// Server-sent events as an async iterable.
const stream = await fetch('https://api.example.com/v1/stream', { method: 'POST' })
for await (const event of parseSSEResponse(stream)) {
  if (event.data === '[DONE]') break
  console.log(event.event ?? 'message', event.data)
}

特征

区域API 密码替换
重试retry, (中文(简体) ), computeBackoff, (中文(简体) ), parseRetryAfter, (中文(简体) ), isRetryableStatus, (中文(简体) ), RETRYABLE_STATUSES手写 for 有固定睡眠的循环, 忽略 Retry-After
获取fetchWithRetry重试两次 POST , 漏出已丢弃的响应机构, 超过所有尝试的超时
超时timeoutSignal, (中文(简体) ), anySignal, (中文(简体) ), withTimeoutsetTimeout + 键 AbortController 锅炉板
机构readBody, (中文(简体) ), readText, (中文(简体) ), readJsonawait res.text() 对无约束反应的答复
证监会parseSSE, (中文(简体) ), parseSSEResponsesplit('\n') + 键 startsWith('data: ') 解析 CRLF 、 多行数据和块边界
地址assertPublicUrl, (中文(简体) ), isPublicAddress, (中文(简体) ), classifyAddressregexs 结束 127.编号 :10.编号 :192.168. 错过 IPv6、 IPv4 和元数据地址
  • 默认缺额数字 : fetchWithRetry 复试 获得/获得/获得/得到/得到/得到/得到/得到/得到/得到/得到/获得;通过 retryMethods: 'all' 选入 POST 。 流体从不复试.

  • 输入错误数字 : NetError 与 AK_NET_TIMEOUT, (中文(简体) ), AK_NET_BODY_TOO_LARGE, (中文(简体) ), AK_NET_BLOCKED_ADDRESS, (中文(简体) ), AK_NET_INVALID_INPUT, (中文(简体) ), AK_NET_SSE_PARSE_FAILED。 。 。 .

  • DNS 已经注射数字 : assertPublicUrl 使用一个 lookup 函数,所以软件包没有 node: 进口。 连接前的检查不会停止 DNS 重新绑定; 将已解决的地址绑定为重要 .

  • 建造在数字 : eventsource-parser, (中文(简体) ), ipaddr.js。 。 。 .

  • 护卫规则数字 : NET_RULES (单位:千美元)readonly NetRule[]从 @agentskit/net/rules 检测重复 HTTP 重试、 SSE、 超时、 地址和身体处理。 添加 @agentskit/cross-platform 作为运行扫描仪的 dev 依赖; 传出 NET_RULES 改为 scanText(file, source, rules) 或者说 scanRepository(options)。两个返回结论都认为: compareToBaseline(findings, baseline) 鼠标。 使用 <id>-ignore: <reason> 例如,对经核准的单一规则的禁止 net-retry-after-ignore: legacy retry handler。存储器检查是 node scripts/check-net-rules.mjs。 。 。 .

    import { NET_RULES } from '@agentskit/net/rules'
    import { scanText } from '@agentskit/cross-platform'
    
    const findings = scanText('src/http.ts', 'const body = await response.text()', NET_RULES)
    console.log(findings.length)
    

可撤销的等待和最后期限

sleep(ms, signal?) 接受0至2,147,483,647毫秒的延迟。 它默认使用可中止的定时器,在中止时清除该定时器,并用信号的实际理由拒绝. retry 默认使用此公共助手; 其可选 sleep 回调有形状 (ms, signal?) => Promise<void>。单参数调用仍然兼容;需要立即取消的调用应尊重可选信号.

withTimeout(work, ms, parent?) 接受2,147,483,647毫秒的正期限,并传递在最后期限或母信号中止时中止的信号。 逾期的最后期限被拒绝 NetError 代码 AK_NET_TIMEOUT; 无效的超时 AK_NET_INVALID_INPUT. 呼叫者流产保留其确切原因,成功或原工作失败不会改变。 包装者拒绝准时,即使工作忽略了信号,但只有合作工作,如 fetch ; 任意 JavaScript 无法强制取消.

import { retry, sleep, withTimeout } from '@agentskit/net'

const parent = new AbortController()
const response = await withTimeout(
  signal => fetch('https://api.example.com/data', { signal }),
  5_000,
  parent.signal,
)

await retry(async () => fetch('https://api.example.com/retry'), {
  sleep: (ms, signal) => sleep(ms, signal),
})

生态系统

软件包作用
@ agentskit/ 核心AgentsKitError基础 NetError
@ agentskit/ 适应器供应商流动和重复
@ agentskit/ 工具安全获取用户提供的 URL

贡献者

AgentsKit contributors

许可证

麻省理工学院——见 自由主义。 。 。 .

文档

完整文档 • 妇女 GitHub 图像

成熟性和相容性

  • 稳定性: β 语录 看到了吗 文件/服务.md没有1.0.
  • 节点.js 20+ (20.19+), Bun, Deno, 现代浏览器和边缘运行时间; 类型脚本 严格模式
  • 发表于 @agentskit/net

捐款

见 捐款额 单曲 自由主义。 。 。 .

版本与发布记录

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

版本发布日期距今
0.2.4latest2026/10/2412 天前
0.2.32026/10/1026 天前
0.2.22026/10/031 个月前
0.2.12026/10/031 个月前
0.2.02026/10/021 个月前
0.1.02026/09/291 个月前

其他发布通道:bootstrap → 0.0.0。

关于 @agentskit/net 的常见问题

@agentskit/net 是什么?

AgentsKit 生态系统的可耐性、可约束性和SSRF-安全HTTP:用Retry-after重试、超时、有尺寸限制的身体、SSE解析和私人地址检查。 在Node, Bun, Deno,浏览器和边缘运行.

如何安装 @agentskit/net?

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

@agentskit/net 支持 TypeScript 吗?

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

@agentskit/net 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@agentskit/net 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@agentskit/net 可以商用吗?

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

@agentskit/net 的下载量有多少?

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

@agentskit/net 还在维护吗?

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