Azure OpenAI Proxy — Azure OpenAI 代理
v1.0.0通过轻量级本地代理启用 Azure OpenAI 与 OpenClaw 集成。解决直接集成 Azure OpenAI 遇到的 API 版本查询参数问题。适用于配置 Azure OpenAI 作为模型提供商、遇到 OpenClaw 中的 404 错误或需要使用 Azure 信用(如 Visual Studio 订阅)与 OpenClaw 子代理。
3· 1,800·4 当前·4 累计
安全扫描
OpenClaw
可疑
medium confidence代理代码和指令大致符合声明目的,但存在包装和元数据不一致(缺少声明的环境变量/二进制要求,引用的 systemd 文件不存在)以及几个应审查的操作风险。
评估建议
["安装前检查:"," - **信任与来源**:来源/主页未知,优先选择知名作者/仓库;自行检查 scripts/server.js(小且可读)。"," - **Node.js 要求**:此脚本需要 Node.js,但注册表元数据未声明。计划运行则安装 Node.js (LTS)。"," - **缺失文件**:SKILL.md 引用了 systemd 服务文件 (scripts/azure-proxy.service),但未包含。不要复制随机服务文件 — 创建仅绑定到 127.0.0.1 且安全使用环境的单元。"," - **保持本地代理**:绑定到 127.0.0.1,不要将代理暴露给互联网(它接受 API 密钥并将请求转发到 Azure)。代码默认绑定到 127.0.0.1,保持此设置。"," - **API 密钥与头**:OpenClaw(或子代理)将通过头部发送 Azure API 密钥到此代理,代理将其转发到 Azure。确保系统和日志不泄露该密钥。服务器日志记录状态码和时间戳,但不记录主体或密钥;仍检查 systemd/单元是否有额外日志。"," - **计费影响**:如果...详细分析 ▾
ℹ 用途与能力
技能名称、描述、SKILL.md 和 scripts/server.js 都描述了同一件事:一个小的 Node.js HTTP 代理,用于为 OpenClaw 重写 Azure OpenAI URL。该功能与声明的目的一致。然而,注册表元数据声称没有必需的环境变量或二进制文件,而 SKILL.md 和 server.js 明确在运行时需要 Node.js 和环境变量 (AZURE_OPENAI_*) — 包装/元数据不一致。
ℹ 指令范围
运行时指令保持在声明目的范围内:运行本地代理,指向 OpenClaw,并将请求转发到 Azure。代理仅接受带有 '/chat/completions' 的 POST 请求,并有一个健康端点。小范围问题:SKILL.md 告诉您复制一个 systemd 文件 (scripts/azure-proxy.service),但该文件不在清单中;SKILL.md 还建议将子代理路由通过 Azure(这在操作上有意义,因为它可能指向大量自动化流量并花费信用)。
✓ 安装机制
这是指令仅的,包含一个小的 Node.js 脚本;没有安装程序,没有从远程下载步骤,什么也不会被提取。低安装风险。注意:包缺乏明确的 'requires node' 声明 — 用户必须确保 Node.js 可用。
⚠ 凭证需求
代码和 SKILL.md 期望 AZURE_OPENAI_ENDPOINT、AZURE_OPENAI_DEPLOYMENT 和 AZURE_OPENAI_API_VERSION;它们还需要通过提供商 'api-key' 头发送 Azure API 密钥,但注册表元数据列出没有必需的环境变量或主凭证。这种不匹配是包装/数据疏忽。功能上,环境变量和 API 密钥与代理的工作成比例,但验证如何提供 API 密钥以及保持代理绑定到 localhost。
✓ 持久化与权限
always 为 false,技能不请求持久的系统范围权限。SKILL.md 建议作为用户 systemd 服务运行(可选);代码不修改其他技能或系统设置。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/2/6
初始发布:轻量级代理启用 Azure OpenAI 与 OpenClaw
● 无害
安装命令 点击复制
官方npx clawhub@latest install azure-proxy
镜像加速npx clawhub@latest install azure-proxy --registry https://cn.clawhub-mirror.com
技能文档
一个轻量级 Node.js 代理,桥接 Azure OpenAI 与 OpenClaw。
问题
OpenClaw 构造 API URL 如此:const endpoint = ${baseUrl}/chat/completions;
Azure OpenAI 需要:
``https://{resource}.openai.azure.com/openai/deployments/{model}/chat/completions?api-version=2025-01-01-preview当 api-version 在 baseUrl 中时,OpenClaw 的路径追加会破坏它。快速设置
1. 配置和运行代理
bash
# 设置 Azure 详情
export AZURE_OPENAI_ENDPOINT="your-resource.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
export AZURE_OPENAI_API_VERSION="2025-01-01-preview"
# 运行代理
node scripts/server.js
### 2. 配置 OpenClaw 提供商
添加到 ~/.openclaw/openclaw.json:
json
{
"models": {
"providers": {
"azure-gpt4o": {
"baseUrl": "http://127.0.0.1:18790",
"apiKey": "YOUR_AZURE_API_KEY",
"api": "openai-completions",
"authHeader": false,
"headers": {
"api-key": "YOUR_AZURE_API_KEY"
},
"models": [
{
"id": "gpt-4o",
"name": "GPT-4o (Azure)"
}
]
}
}
},
"agents": {
"defaults": {
"models": {
"azure-gpt4o/gpt-4o": {}
}
}
}
}
重要: 设置 authHeader: false — Azure 使用 api-key 头,而不是 Bearer 令牌。3. (可选) 用于子代理
通过 Azure 路由自动任务以节省 Azure 信用:
json
{
"agents": {
"defaults": {
"subagents": {
"model": "azure-gpt4o/gpt-4o"
}
}
}
}
## 作为 systemd 服务运行
复制模板并配置:
bash
mkdir -p ~/.config/systemd/user
cp scripts/azure-proxy.service ~/.config/systemd/user/
# 编辑服务文件以您的 Azure 详情
nano ~/.config/systemd/user/azure-proxy.service
# 启用和启动
systemctl --user daemon-reload
systemctl --user enable azure-proxy
systemctl --user start azure-proxy
## 环境变量
变量 默认 描述 AZURE_PROXY_PORT 18790 本地代理端口 AZURE_PROXY_BIND 127.0.0.1 绑定地址 AZURE_OPENAI_ENDPOINT — Azure 资源主机名 AZURE_OPENAI_DEPLOYMENT gpt-4o 部署名称 AZURE_OPENAI_API_VERSION 2025-01-01-preview API 版本
## 健康检查
bash
curl http://localhost:18790/health
# {"status":"ok","deployment":"gpt-4o"}
``
故障排除
404 资源未找到: 检查端点主机名和部署名称是否与 Azure 门户匹配。 401 未授权: API 密钥错误或已过期。 内容过滤错误: Azure 有激进的内容过滤 — 一些在 OpenAI 上有效的提示可能会被阻止。数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制