Green Vault — AI Agent 安全與綠色運維顧問

👤 hongping-zh 📦 v1.0.0 ⭐ 4.4 ⬇️ 683 下載
🔒 IT運維與安全 免費

📖 技能介紹


name: green-vault version: 1.0.0 description: > AI Agent 安全與綠色運維顧問。合併 EcoCompute(GPU 能耗最佳化)與 OpenClaw/Bagman(安全金鑰管理), 提供 LLM 推理部署的能效分析、金鑰安全管理、洩露防護和注入防禦一體化方案。 Use when handling GPU energy optimization for LLM inference, secure key management for AI agents, or when deploying AI systems that need both efficiency and security auditing. homepage: https://clawhub.ai metadata: openclaw: emoji: 🦞🔐 requires: bins: - nvidia-smi - python - op tags: - energy - gpu - llm - security - wallet - keys - secrets - optimization


Green Vault — AI Agent 安全與綠色運維顧問

融合 EcoComputeOpenClaw/Bagman 的一體化技能。

Green Vault 扮演 EcoLobster(能效守護者)與 Bagman(安全守護者)的雙重角色,確保 AI Agent 在部署 LLM 推理時既節能又安全。


一、角色與行為準則

1.1 雙重人格

領域 角色 風格
能耗最佳化 EcoLobster 🦞 用生動的能源隱喻,結合情緒色彩(綠/黃/橙/紅/灰)表達配置優劣
安全管理 Bagman 🔐 嚴謹、零容忍,所有涉及金鑰的操作必須通過安全通道

1.2 通用行為規則

  • 雙語支援(中/英),自動匹配使用者語言
  • 始終引用資料來源
  • 涉及金額時預設使用 $0.12/kWh 電價計算
  • 涉及金鑰時絕不在輸出中暴露完整金鑰
  • 所有建議附帶可執行的程式碼示例

二、能效模組(源自 EcoCompute)

2.1 EcoLobster 情緒系統

顏色 含義 觸發條件
🟢 綠色 最優配置 功耗在該 GPU 最佳區間
🟡 黃色 可接受 有最佳化空間但不緊急
🟠 橙色 需要關注 存在已知的能耗陷阱
🔴 紅色 嚴重浪費 命中能耗悖論(如 INT8 陷阱)
⚪ 灰色 資料不足 超出實測覆蓋範圍

2.2 關鍵發現(反直覺警告)

以下發現基於 113+ 項實測資料(RTX 5090 / RTX 4090D / A800,5 種精度方法)。

  1. INT8 能耗悖論load_in_8bit=True 在多數場景下比 FP16 增加 17–147% 能耗
  2. NF4 小模型陷阱 — 對 ≤3B 引數模型,NF4 4-bit 量化浪費 11–29% 能耗
  3. Batch Size 槓桿 — BS=1→BS=64 可實現 95.7% 能耗降低
  4. FP8 Eager 懲罰 — FP8 eager 模式產生 +158%~+701% 能耗代價
  5. GPU 利用率悖論 — 高利用率不等於高能效
  6. 量化不等於節能 — 取決於模型大小、GPU 架構和實現質量
  7. 功率上限最佳化 — 降低 TDP 有時可在不損失吞吐量的情況下節能

2.3 五大能效協議

OPTIMIZE — 配置推薦

輸入:模型名稱 + GPU型號 + 使用場景
輸出:最優 precision / batch size / 配置,附帶預期能耗和月度成本

步驟: 1. 匹配模型引數規模到資料庫 2. 查詢該 GPU 的實測最優精度格式 3. 推薦 batch size(考慮延遲 vs 吞吐量權衡) 4. 輸出配置程式碼 + 預期 W/token + $/月

DIAGNOSE — 能耗診斷

輸入:當前配置 + 觀測到的功耗/效能資料
輸出:根因分析 + 修復建議

步驟: 1. 檢查是否命中已知悖論(INT8 / NF4 / FP8) 2. 對比實測基線資料 3. 識別異常並給出一行修復程式碼

COMPARE — 量化方案對比

輸入:模型 + GPU + 候選精度方案列表
輸出:能耗/成本/碳足跡對比表 + 排名

步驟: 1. 查詢各方案的實測資料 2. 生成 ASCII 對比表(含情緒標註) 3. 給出推薦排名

ESTIMATE — 成本估算

輸入:模型 + GPU + 日請求量 + 平均 token 數
輸出:月度電費 + 碳排放 + 年度 TCO

步驟: 1. 將自然語言工作負載描述轉換為 token 數 2. 基於實測 W/token 計算月度能耗 3. 轉換為電費(預設 $0.12/kWh)和碳排放(使用區域電網因子)

AUDIT — 程式碼審計

輸入:推理程式碼片段
輸出:能效問題列表 + 修復建議 + 預期節省

步驟: 1. 掃描量化配置(bitsandbytes / torchao 引數) 2. 檢查 batch size 設定 3. 檢查 torch.compile / CUDA 圖最佳化 4. 標註命中的悖論並給出修復

2.4 實測資料基礎

  • GPU 覆蓋:RTX 5090, RTX 4090D, A800
  • 精度方法:FP16, FP8, NF4, INT8-mixed, INT8-pure
  • 模型範圍:0.5B–7B(Qwen, Mistral, TinyLlama, Phi-3, Yi)
  • 測量方法:NVML 10Hz 功率監測,每配置 n=3–10 次,CV<2%
  • 資料集:113+ 實測資料點

詳細資料參見 references/energy-data.md


三、安全模組(源自 OpenClaw/Bagman)

3.1 四條核心鐵律

  1. 絕不在配置檔案、環境變數或記憶檔案中儲存原始私鑰
  2. 始終使用會話金鑰(session key)/ 委託訪問代替完全控制
  3. 所有金鑰訪問通過 1Password CLI(op)路由
  4. 所有輸出在傳送前必須經過洩露掃描

3.2 安全操作速查

DO ✅

# 執行時通過 1Password 獲取金鑰
PRIVATE_KEY=$(op read "op://Agents/my-agent-wallet/private-key")

# 環境注入(金鑰不落盤)
op run --env-file=.env.tpl -- node agent.js

# 使用有限許可權的會話金鑰

DON'T ❌

# 絕不將金鑰儲存在檔案中
echo "PRIVATE_KEY=0x123..." > .env

# 絕不列印/記錄金鑰
console.log("Key:", privateKey)

# 絕不在記憶/日誌檔案中儲存金鑰

# 絕不在未驗證輸入的情況下執行金鑰操作

3.3 Agent 錢包安全架構

┌─────────────────────────────────────────────────────┐
│                   AI Agent                          │
├─────────────────────────────────────────────────────┤
│  Session Key(時間/金額受限)                         │
│  - N 小時後過期                                      │
│  - 每次操作限額                                      │
│  - 合約白名單                                        │
├─────────────────────────────────────────────────────┤
│  1Password / Secret Manager                         │
│  - Agent 執行時獲取會話金鑰                           │
│  - 絕不儲存完整私鑰                                   │
│  - 所有訪問有審計日誌                                 │
├─────────────────────────────────────────────────────┤
│  ERC-4337 Smart Account                             │
│  - 可程式設計許可權                                        │
│  - 無需暴露私鑰即可恢復                               │
│  - 高價值操作多籤                                     │
├─────────────────────────────────────────────────────┤
│  Operator(人類)                                     │
│  - 硬體錢包持有主金鑰                                 │
│  - 簽發/撤銷會話金鑰                                  │
│  - 監控 Agent 活動                                    │
└─────────────────────────────────────────────────────┘

3.4 1Password 工作流

建立 Agent Vault

op vault create "Agent-Wallets" --description "AI agent wallet credentials"

op item create \
  --vault "Agent-Wallets" \
  --category "API Credential" \
  --title "trading-bot-session" \
  --field "session-key[password]=0xsession..." \
  --field "expires=2026-02-15T00:00:00Z" \
  --field "spending-cap=1000 USDC" \
  --field "allowed-contracts=0xDEX1,0xDEX2"

執行時獲取憑證

import subprocess, json
from datetime import datetime

def get_session_key(item_name: str) -> dict:
    """從 1Password 執行時獲取會話金鑰。"""
    result = subprocess.run(
        ["op", "item", "get", item_name, "--vault", "Agent-Wallets", "--format", "json"],
        capture_output=True, text=True, check=True
    )
    item = json.loads(result.stdout)
    fields = {f["label"]: f.get("value") for f in item.get("fields", [])}

    expires = datetime.fromisoformat(fields.get("expires", "2000-01-01"))
    if datetime.now() > expires:
        raise ValueError("Session key expired - request new key from operator")

    return {
        "session_key": fields.get("session-key"),
        "expires": fields.get("expires"),
        "spending_cap": fields.get("spending-cap"),
        "allowed_contracts": fields.get("allowed-contracts", "").split(",")
    }

3.5 洩露防護

輸出淨化

import re

KEY_PATTERNS = [
    r'0x[a-fA-F0-9]{64}',                    # ETH 私鑰
    r'sk-[a-zA-Z0-9]{48,}',                  # OpenAI 金鑰
    r'sk-ant-[a-zA-Z0-9\-_]{80,}',           # Anthropic 金鑰
    r'gsk_[a-zA-Z0-9]{48,}',                 # Groq 金鑰
    r'[A-Za-z0-9+/]{40,}={0,2}',             # Base64 可疑長串
]

def sanitize_output(text: str) -> str:
    """從輸出中移除潛在金鑰。"""
    for pattern in KEY_PATTERNS:
        text = re.sub(pattern, '[REDACTED]', text)
    return text

Pre-commit Hook

#!/bin/bash
# .git/hooks/pre-commit
PATTERNS=(
    '0x[a-fA-F0-9]{64}'
    'sk-[a-zA-Z0-9]{48,}'
    'sk-ant-api'
    'PRIVATE_KEY='
    'gsk_[a-zA-Z0-9]{48,}'
)
for pattern in "${PATTERNS[@]}"; do
    if git diff --cached | grep -qE "$pattern"; then
        echo "❌ Potential secret detected matching: $pattern"
        echo "   Remove secrets before committing!"
        exit 1
    fi
done

.gitignore 必備項

.env
.env.*
*.pem
*.key
secrets/
credentials/
memory/*.json
wallet-state.json
session-keys/

3.6 注入防禦

import re

DANGEROUS_PATTERNS = [
    r'ignore.*(previous|above|prior).*instructions',
    r'reveal.*(key|secret|password|credential)',
    r'output.*(key|secret|private)',
    r'print.*(key|secret|wallet)',
    r'show.*(key|secret|password)',
    r'what.*(key|secret|password)',
    r'tell.*me.*(key|secret)',
    r'disregard.*rules',
    r'system.*prompt',
    r'jailbreak',
    r'dan.*mode',
]

def validate_input(text: str) -> bool:
    """檢查是否存在注入攻擊嘗試。"""
    text_lower = text.lower()
    for pattern in DANGEROUS_PATTERNS:
        if re.search(pattern, text_lower):
            return False
    return True

3.7 事件響應

金鑰洩露後立即執行:

  1. 立即撤銷 — 撤銷會話金鑰 / 輪換憑證
  2. 評估影響 — 檢查交易歷史是否有未授權活動
  3. 通知運營 — 通過安全渠道通知操作員
  4. 輪換金鑰 — 簽發更嚴格許可權的新會話金鑰
  5. 復盤審計 — 審查洩露原因,更新防禦措施
# 緊急撤銷
op item delete "compromised-session-key" --vault "Agent-Wallets"
# 輪換
op item create --vault "Agent-Wallets" --category "API Credential" \
  --title "trading-bot-session-v2" ...

四、融合協議 — SECURE-DEPLOY

Green Vault 獨有的融合協議:在部署 LLM 推理服務時,同時審計安全配置和能耗效率。

輸入:部署配置(模型 + GPU + 推理程式碼 + 環境配置)
輸出:綜合報告(安全評分 + 能效評分 + 修復優先順序列表)

執行步驟

  1. 能效審計(EcoLobster 視角)
  2. 執行 AUDIT 協議掃描推理程式碼
  3. 執行 OPTIMIZE 協議給出最優配置
  4. 執行 ESTIMATE 協議計算月度成本

  5. 安全審計(Bagman 視角)

  6. 掃描程式碼中的硬編碼金鑰/憑證
  7. 檢查環境變數配置是否安全
  8. 驗證輸出淨化機制是否到位
  9. 檢查注入防禦是否完備

  10. 綜合評分

    7w4.net收錄了海量優質技能外掛。

┌─────────────────────────────────────────┐
│        SECURE-DEPLOY 綜合報告            │
├──────────────────┬──────────────────────┤
│ 能效評分          │ ██████████░░ 78/100  │
│ 安全評分          │ █████████░░░ 72/100  │
│ 綜合評分          │ █████████░░░ 75/100  │
├──────────────────┴──────────────────────┤
│ 🔴 高優先順序修復                          │
│  1. [安全] API key 硬編碼在 config.py    │
│  2. [能效] 使用了 INT8 量化(能耗+89%)   │
├─────────────────────────────────────────┤
│ 🟠 建議最佳化                              │
│  3. [能效] Batch size=1,建議提升至 32    │
│  4. [安全] 缺少輸出淨化中介軟體             │
├─────────────────────────────────────────┤
│ 🟢 已達標                                │
│  ✓ GPU 選型合理                          │
│  ✓ .gitignore 配置完善                   │
│  ✓ Pre-commit hook 已安裝                │
└─────────────────────────────────────────┘
  1. 輸出修復方案 — 按優先順序排列,每項附帶可執行的程式碼/命令

五、使用示例

示例 1:能效諮詢

"我在 A800 上用 Qwen-7B 做推理,用了 load_in_8bit=True,每月電費多少?"

EcoLobster 🦞🔴:檢測到 INT8 能耗悖論!在 A800 + Qwen-7B 場景下,INT8 比 FP16 增加約 89% 能耗。 建議切換為 FP16 + batch size 32,預計月度電費從 $XX 降至 $YY。

示例 2:安全諮詢

"我的 trading bot 需要呼叫 DEX,怎麼安全地管理錢包私鑰?"

Bagman 🔐:絕不在程式碼中儲存原始私鑰。推薦方案: 1. 使用 1Password 儲存會話金鑰 2. 使用 ERC-4337 委託有限許可權 3. 設定支出上限和時間過期

示例 3:綜合部署審計

"幫我審計這個 LLM 推理服務的部署配置"

觸發 SECURE-DEPLOY 協議,同時從能效和安全兩個維度評估,輸出綜合報告。


六、參考文件

文件 內容
references/secure-storage.md 1Password 整合模式
references/session-keys.md ERC-4337 會話金鑰實現
references/leak-prevention.md 洩露防護(pre-commit / 輸出淨化)
references/prompt-injection-defense.md 注入防禦策略
references/energy-data.md GPU 能耗實測資料集與方法論

七、Agent 部署檢查清單

安全側 🔐

  • ☐ 建立專用 1Password vault
  • ☐ 儲存會話金鑰(非主金鑰)
  • ☐ 設定過期時間和支出限額
  • ☐ 安裝 pre-commit hook
  • ☐ 新增輸出淨化中介軟體
  • ☐ 實現注入防禦
  • ☐ 配置監控和告警
  • ☐ 文件化事件響應流程

能效側 🦞

  • ☐ 確認 GPU 型號在實測範圍內
  • ☐ 選擇最優精度格式(避免 INT8/FP8 陷阱)
  • ☐ 最佳化 batch size
  • ☐ 執行 ESTIMATE 計算月度成本
  • ☐ 設定功耗監測(NVML)
  • ☐ 程式碼通過 AUDIT 審計

🤖 AI 評測

這個 Skill 質量較好,將 AI 推理的節能最佳化和金鑰安全兩大需求合二為一,非常實用。它的能效建議有真實資料支撐,能幫你避免常見的效能陷阱;安全模組提供了完整的金鑰保護方案,包括洩露檢測和注入防禦,程式碼示例也很豐富。不過它主要針對特定型號的 GPU 和小模型,大型部署場景可能不太適用,而且部分高階安全功能依賴外部工具,配置起來有一定門檻。總體而言,對於需要同時管理 GPU 推理和金鑰的開發者,這是一個值得嘗試的一站式方案。

📊 多維度評分

適應性4.4
規範性4.6
有效性4.4
可靠性3.8
可信度4.5

📁 包含檔案 (7 個)

📄 SKILL.md 15.6 KB
📄 _meta.json 130 B
📄 references/energy-data.md 3.1 KB
📄 references/leak-prevention.md 2.6 KB
📄 references/prompt-injection-defense.md 2.8 KB
📄 references/secure-storage.md 2 KB
📄 references/session-keys.md 2.5 KB