mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-08 23:33:16 +08:00
Add a dedicated doc page and link it from the README and auth standard. Co-authored-by: Cursor <cursoragent@cursor.com>
2.9 KiB
2.9 KiB
uds-skill-auth(给他人传递用)
把本文 + 同仓库 skill 目录发给改造方即可。业务 skill 必须依赖本公共 skill,不能只装插件。
仓库位置(可直接拷贝整目录)
skills/uds-skill-auth/
SKILL.md
scripts/uds_skill_auth.py
现场:拷到对方 skills/ 下,与业务 skill 同级。
依赖链
uds-auth 插件(Host)
→ skill「uds-skill-auth」(公共库,本页)
→ 用户扫码登录
→ 业务 skill
完整契约:skill-auth-standard.zh.md
SKILL.md(安装后目录内同名文件)
---
name: uds-skill-auth
description: UDS 技能认证公共库。其它依赖 UDS 登录的 skill 必须安装本 skill,通过其 scripts/uds_skill_auth.py 取凭证或出站调用。需现场已安装 uds-auth 插件且用户已扫码登录。
---
# uds-skill-auth(认证公共 Skill)
本 skill **不是业务能力**,而是给其它 skill 用的公共库。
## 现场依赖
1. 安装并启用 uds-auth 插件
2. 安装本 skill(uds-skill-auth)到 skills 目录
3. 用户扫码登录
4. 再安装/使用业务 skill
## 给其它 Skill 用
业务 skill 的 Python 把本 skill 的 scripts/ 加入 sys.path 后:
from uds_skill_auth import resolve, request, UdsAuthError
creds = resolve()
out = request("POST", url, headers={...}, body={...})
业务 skill 如何引用(复制这段即可)
from pathlib import Path
import sys
def load_uds_skill_auth():
here = Path(__file__).resolve().parent
# .../skills/<业务>/scripts → .../skills/uds-skill-auth/scripts
candidate = here.parents[1] / "uds-skill-auth" / "scripts"
if not (candidate / "uds_skill_auth.py").is_file():
raise RuntimeError("请先安装 uds-skill-auth skill(与业务 skill 同级)")
sys.path.insert(0, str(candidate))
import uds_skill_auth
return uds_skill_auth
或设置环境变量 UDS_AUTH_HELPERS = 本 skill 的 scripts 绝对路径。
API 摘要
| 函数 | 用途 |
|---|---|
resolve(apply_env_aliases=True) |
向 Host POST /uds-auth/agent-credentials 取 empNo+token;默认写入进程内 EMP_NO/AUTH_VALUE/coclaw_* |
request(method, url, headers=..., body=...) |
向 Host POST /uds-auth/outbound 出站;Host 注入鉴权头 |
UdsAuthError |
未登录 / 连不上 Host / 白名单拒绝等 |
Agent 环境(已注入,勿在 SKILL 里教打印密钥):DSH_SESSION_ID、DSH_WEB_URL。
改造现有 skill 时给 AI 的最短说明
- 现场已装 uds-auth + 本 skill
uds-skill-auth - 删掉读全局
coclaw_token/AUTH_VALUE的逻辑 - 用上面的
load_uds_skill_auth()+resolve()或request() - SKILL.md 写明依赖
uds-skill-auth,禁止教 printenv token
实现源码见:skills/uds-skill-auth/scripts/uds_skill_auth.py。