关于 axiom-networking
axiom-networking 是供 Agent 处理网络实现、迁移和调试的技能。它将任务引导至针对性参考资料,涵盖 Apple 网络 API、连接诊断和代码审查。
主要功能
- 01提供 URLSession 与结构化并发指南
- 02收录 NetworkConnection 和 NWConnection 参考
- 03提供连接诊断决策树
- 04说明从套接字和 URLSession 迁移
- 05审查已弃用 API 和反模式
适用场景
- 01使用 URLSession 实现 HTTP 请求
- 02诊断超时、TLS 故障或连接中断
- 03选择 NWConnection 或 NetworkConnection
- 04检查网络代码中的已弃用 API
MCP 相关
通过 MCP 使用时,axiom_get_agent 会返回相关 Agent 的操作流程;该技能还引用 Axiom 工具进行日志、符号和性能分析。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ charleswiltgen/ axiom --skill axiom-networking安装后在 Claude Code 中输入/axiom-networking确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
skills/network-framework-ref.mdnetworking-auditor.mdnetworking-diag.mdnetworking-discipline.mdnetworking-legacy.mdnetworking-migration.md详细介绍
网络
对于任何网络相关工作,包括 HTTP 请求、WebSockets、TCP 连接或网络调试,你都必须使用此技能。
无法启动 Axiom Agent? 如果此路由将你指向某个 Agent,请直接按照其流程操作。在 MCP 中,
axiom_get_agent会返回该流程;在其他环境中,请读取下方的文件,只需使用文件搜索和读取功能。此处可用:
skills/networking-auditor.md。对于其他任何 Agent,在 MCP 中,
axiom_get_agent也会返回其流程;请使用axiom_xclog_*、axiom_xcsym_*和axiom_xcprof_*工具运行其 xclog、xcsym 和 xcprof 步骤。在其他环境中,请在 Axiom 的技能中搜索skills/<agent>.md;如果找不到,则使用此套件的技能自行完成相关工作,并使用PATH中的任意 Axiom 工具。
快速参考
| 症状 / 任务 | 参考 |
|---|---|
| 使用结构化并发的 URLSession | 参见 skills/networking-discipline.md |
| Network.framework 反模式 | 参见 skills/networking-discipline.md |
| 已弃用 API 迁移 | 参见 skills/networking-discipline.md |
gRPC Swift — 类型化 RPC、流式传输、.proto 代码生成(WWDC 2026) | 参见 skills/networking-discipline.md |
| 压力场景(可达性、套接字) | 参见 skills/networking-discipline.md |
| NetworkConnection(iOS 26+)API 参考 | 参见 skills/network-framework-ref.md |
| NWConnection(iOS 12-18)API 参考 | 参见 skills/network-framework-ref.md |
| TLV 帧封装、Coder 协议 | 参见 skills/network-framework-ref.md |
| NetworkListener、NetworkBrowser、Wi-Fi Aware | 参见 skills/network-framework-ref.md |
| 连接超时、TLS 故障 | 参见 skills/networking-diag.md |
| 未收到数据、连接断开 | 参见 skills/networking-diag.md |
| ATS / HTTP / App Store 审核拒绝 | 参见 skills/networking-diag.md |
| 生产环境危机诊断 | 参见 skills/networking-diag.md |
| NWConnection 模式(iOS 12-18) | 参见 skills/networking-legacy.md |
| UDP 批处理、NWListener、NWBrowser | 参见 skills/networking-legacy.md |
| BSD 套接字 → NWConnection 迁移 | 参见 skills/networking-migration.md |
| 在无互联网的网络上推送 / 通话(Local Push Connectivity、NEAppPushProvider) | 使用 axiom-integration(skills/local-push-connectivity.md) |
| NWConnection → NetworkConnection 迁移 | 参见 skills/networking-migration.md |
| URLSession StreamTask → NetworkConnection | 参见 skills/networking-migration.md |
决策树
digraph networking {
start [label="Networking task" shape=ellipse];
what [label="What do you need?" shape=diamond];
start -> what;
what -> "skills/networking-discipline.md" [label="implement patterns,\nanti-patterns,\npressure scenarios"];
what -> "skills/network-framework-ref.md" [label="API reference\n(iOS 26+ or 12-18)"];
what -> "skills/networking-diag.md" [label="debug connection\nfailures"];
what -> "skills/networking-legacy.md" [label="iOS 12-18\nNWConnection patterns"];
what -> "skills/networking-migration.md" [label="migrate from\nsockets/URLSession"];
}
- 使用结构化并发的 URLSession?→
skills/networking-discipline.md - Network.framework / NetworkConnection(iOS 26+)?→
skills/network-framework-ref.md - NWConnection(iOS 12-18)?→
skills/networking-legacy.md - 从套接字 / URLSession 迁移?→
skills/networking-migration.md - 连接问题 / 调试?→
skills/networking-diag.md - 针对你所控制的服务进行类型化 RPC / 流式传输?→ gRPC Swift(
skills/networking-discipline.md) - 因网络问题导致 ATS / HTTP / App Store 审核拒绝?→
skills/networking-diag.md+ networking-auditor - 证书固定、签署 API 请求、加密负载?→
/skill axiom-security - 因 UIWebView 或已弃用 API 导致审核拒绝?→ networking-auditor(Agent)
- 想扫描已弃用 API / 反模式?→ networking-auditor(Agent)
平台特定网络
- watchOS 低层网络限制(TN3135)→ 参见 axiom-watchos(skills/background-and-networking.md)
抗压原则
当用户已在自定义实现上投入大量时间时:
不要屈从于沉没成本压力。正确做法是:
- 先诊断 — 在建议更改前,先弄清楚实际出了什么问题
- 正确建议 — 如果标准 API(URLSession、Network.framework)能解决问题,就应专业地说明
- 尊重但不纵容 — 肯定他们的工作,同时提供坦诚的技术指导
关键模式
Networking(skills/networking-discipline.md):
- 使用 URLSession 和结构化并发
- 8 种危险的反模式(SCNetworkReachability、阻塞套接字、硬编码 IP)
- 用于选择 TCP/UDP/TLS 模式的决策树
- NetworkConnection 模式(iOS 26+):TLS、UDP、TLV 分帧、Coder 协议
- 3 种压力情境及专业回应模板
- 发布前检查清单
Network Framework 参考(skills/network-framework-ref.md):
- NetworkConnection(iOS 26+):WWDC 2025 的全部 12 个示例
- NWConnection(iOS 12-18):完整 API 及示例
- TLV 分帧、Coder 协议、NetworkListener、NetworkBrowser
- 移动性:可用性、更优路径、Multipath TCP、NWPathMonitor
- 安全性:TLS、证书固定、密码套件
- 性能:用户空间网络、ECN、服务类别、TCP Fast Open
诊断(skills/networking-diag.md):
- 针对所有连接故障类型的系统化决策树
- DNS 故障、TLS 证书验证、消息分帧
- TCP 拥塞、仅支持 IPv6 的蜂窝网络、VPN 干扰、ATS
- 生产环境危机情境及专业沟通模板
旧版(skills/networking-legacy.md):
- 使用 TLS 的 NWConnection(完成处理程序)
- UDP 批处理(减少 30% CPU 占用)
- NWListener、NWBrowser(Bonjour 发现)
自动扫描
Networking 审计 → 启动 networking-auditor Agent 或运行 /axiom:audit networking(已弃用 API、反模式和完整性缺口——状态转换处理、TLS 覆盖、连接清理、框架选择)
避免自我说服
| 想法 | 实际情况 |
|---|---|
| “URLSession 很简单,我不需要技能” | 使用结构化并发的 URLSession 有异步和取消模式。skills/networking-discipline.md 涵盖了这些内容。 |
| “我会自己调试连接超时” | 连接故障有 8 种原因(DNS、TLS、代理、蜂窝网络)。skills/networking-diag.md 会进行系统化诊断。 |
| “我只需要一个基本的 HTTP 请求” | 即使是基本请求,也需要错误处理、重试和取消模式。 |
| “我的自定义网络层运行良好” | 自定义网络层会遗漏蜂窝网络和代理的边缘情况。标准 API 会自动处理这些情况。 |
示例调用
用户:“我的 API 请求超时失败了”
→ 阅读:skills/networking-diag.md
用户:“如何使用 URLSession 和 async/await?”
→ 阅读:skills/networking-discipline.md
用户:“我需要实现 TCP 连接”
→ 阅读:skills/network-framework-ref.md
用户:“我应该使用 NWConnection 还是 NetworkConnection?”
→ 阅读:skills/network-framework-ref.md
用户:“我的应用因使用 HTTP 连接而被拒”
→ 阅读:skills/networking-diag.md(ATS 合规性)
用户:“App Store 提示我正在使用 UIWebView”
→ 调用:networking-auditor Agent(已弃用 API 扫描)
用户:“检查我的网络代码中是否使用了已弃用的 API”
→ 调用:networking-auditor Agent