V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
YuanJiwei
V2EX  ›  程序员

开源了一个 AI Agent 认证工具 sig —— 让 AI Agent 安全访问外部系统

  •  2
     
  •   YuanJiwei · Apr 21 · 1035 views

    做 AI Agent 的都知道一个痛点—— Agent 需要访问 Jira 、Slack 、Confluence 、内部 API ,但凭证怎么传?粘贴到 shell 历史里?写在 .env 里?直接丢给 Agent 的上下文窗口?每一种都是安全隐患。

    所以做了 sig ,核心思路:在网络层解决认证问题,让凭证永远不暴露给 AI Agent 。

    MITM 代理——最安全的方式

    这是 sig 最核心的能力。一条命令启动本地 HTTPS 代理:

    sig proxy start
    # Proxy: running  pid=26676  port=60702
    #   http_proxy=http://127.0.0.1:60702
    #   https_proxy=http://127.0.0.1:60702
    

    原理很直接:

    1. sig 在 127.0.0.1 启动一个 MITM 代理( ECDSA P-256 CA + 按域名动态签发叶证书)
    2. AI Agent 的 Agent Skill 只需设置 HTTP_PROXY / HTTPS_PROXY,正常发 HTTPS 请求(curl, wget, python scripts)
    3. MITM 代理拦截请求,根据目标域名匹配 provider ,自动注入 Cookie / Authorization / 自定义 Header
    4. AI Agent 从头到尾不知道凭证的存在——它发的是代理请求,凭证注入在网络层透明完成
      AI Agent                    sig proxy (127.0.0.1)              Target API
         │                              │                               │
         │  GET /api/myself             │                               │
         │  (no auth headers)      ──→  │  + Cookie: SESSION=xxx        │
         │                              │  + Authorization: Bearer yyy  │
         │                              │  ──────────────────────────→  │
         │                              │                               │
         │         ← 200 OK ────────────│  ← 200 OK ────────────────────│
    

    MITM 代理模式下,凭证只存在于代理进程内存中,AI Agent 的进程空间里根本没有凭证。

    适合场景:

    • 长期运行的 Agent 守护进程
    • 多个 Agent 共享同一份凭证(都指向同一个代理)
    • 极致安全要求——凭证不能出现在任何进程的环境变量或内存中

    完整功能

    npm install -g @sigcli/cli
    
    sig init                              # 初始化配置
    sig login https://jira.example.com    # 浏览器 SSO 登录一次
    
    # 方式一:MITM 代理(推荐,最安全)
    sig proxy start
    sig proxy trust                       # 信任 CA 证书
    export https_proxy=http://127.0.0.1:60702
    curl https://jira.example.com/rest/api/2/myself   # 自动注入凭证
    
    # 方式二:环境变量注入
    sig run my-jira -- claude "把所有 P1 Bug 整理成摘要"
    
    # 方式三:直接请求
    sig request https://jira.example.com/rest/api/2/myself
    

    其他能力:

    • 浏览器 SSO — 支持任何网站、任何登录流程,无头→可视自动切换
    • AES-256-GCM 加密存储 — 凭证不出现在代码仓库或 shell 历史中
    • 4 种策略 — cookie 、oauth2 、api-token 、basic
    • SSH 同步 — 笔记本登录,sig sync push 到远程机器
    • AI Agent Skills — 内置 Slack 、Outlook 、MS Teams 、V2EX 技能
    • TypeScript & Python SDK

    安全模型

    层级 机制 效果
    加密存储 AES-256-GCM 凭证文件即使被读取也无法解密
    进程隔离 sig run 环境变量注入 不出现在 shell 历史或 ps 输出
    输出脱敏 stdout/stderr 自动替换 [REDACTED] AI 上下文窗口看不到真实令牌
    零信任代理 MITM 代理在网络层注入 AI 进程内存中根本没有凭证

    一起来做

    项目刚起步,还有很多可以做的方向:更多浏览器适配器、更多 AI Agent Skills (欢迎给你常用的系统写一个)、OAuth2 PKCE 流程优化、Web UI 管理面板……

    如果你对 AI Agent 基础设施这个方向感兴趣,欢迎来一起维护。一个人走得快,一群人走得远。

    项目完全 MIT 开源,TypeScript 实现。

    GitHub: https://github.com/sigcli/sigcli 网站: https://sigcli.ai

    Issue 、PR 、讨论都欢迎: https://github.com/sigcli/sigcli

    也可以微信交流: eXVhbnNkdQ==( base64 )或者 cHlsb25wZW5n( base64)

    Star 一下也是支持 ⭐️ https://github.com/sigcli/sigcli

    6 replies    2026-04-22 14:37:34 +08:00
    crime1024
        1
    crime1024  
       Apr 21
    有点意思,有 GO 版本的么
    YuanJiwei
        2
    YuanJiwei  
    OP
       Apr 21
    @crime1024 你需要 Goland 的 SDK 还是想要 Golang 版本 CLI 呀,因为这个工具是 CLI ,和编程语言无关的
    gbin
        3
    gbin  
       Apr 21 via iPhone
    @crime1024 感谢关注,这个主要是个人开发者使用,如果你需要 go sdk 可以提个 issue
    gbin
        4
    gbin  
       Apr 21 via iPhone
    感谢 jiwei ,作为这个作品的开发者之一,也谈谈我对 sigcli 的看法。

    过去,人使用浏览器登录系统然后操控系统,浏览器负责管理用户身份和提供用户操作接口。
    未来,所有系统提供 Agent 操作接口,Agent 接管身份管理和系统操控。
    在那个“未来”到来之前,sig 就是这个桥梁,帮 Agent 管理用户身份,打通 Agent 和系统的连接,让 AI 更懂你的系统。

    还是那句话:Sign in your way, AI works on your behalf
    beyondstars
        5
    beyondstars  
       Apr 22
    你相当于把 surge / charles proxy 的 mitm 功能单独拿出来给 ai agent 做了特化。
    gbin
        6
    gbin  
       Apr 22
    @beyondstars 我们做了比这个多一些,我们相当于把浏览器的用户身份管理能力提取出来了,然后 AI Agent 可以通过 Sigcli 代表用户操控任意系统。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2693 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 10:12 · PVG 18:12 · LAX 03:12 · JFK 06:12
    ♥ Do have faith in what you're doing.