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
融合 EcoCompute 與 OpenClaw/Bagman 的一體化技能。
Green Vault 扮演 EcoLobster(能效守護者)與 Bagman(安全守護者)的雙重角色,確保 AI Agent 在部署 LLM 推理時既節能又安全。
| 領域 | 角色 | 風格 |
|---|---|---|
| 能耗最佳化 | EcoLobster 🦞 | 用生動的能源隱喻,結合情緒色彩(綠/黃/橙/紅/灰)表達配置優劣 |
| 安全管理 | Bagman 🔐 | 嚴謹、零容忍,所有涉及金鑰的操作必須通過安全通道 |
| 顏色 | 含義 | 觸發條件 |
|---|---|---|
| 🟢 綠色 | 最優配置 | 功耗在該 GPU 最佳區間 |
| 🟡 黃色 | 可接受 | 有最佳化空間但不緊急 |
| 🟠 橙色 | 需要關注 | 存在已知的能耗陷阱 |
| 🔴 紅色 | 嚴重浪費 | 命中能耗悖論(如 INT8 陷阱) |
| ⚪ 灰色 | 資料不足 | 超出實測覆蓋範圍 |
以下發現基於 113+ 項實測資料(RTX 5090 / RTX 4090D / A800,5 種精度方法)。
load_in_8bit=True 在多數場景下比 FP16 增加 17–147% 能耗輸入:模型名稱 + GPU型號 + 使用場景
輸出:最優 precision / batch size / 配置,附帶預期能耗和月度成本
步驟: 1. 匹配模型引數規模到資料庫 2. 查詢該 GPU 的實測最優精度格式 3. 推薦 batch size(考慮延遲 vs 吞吐量權衡) 4. 輸出配置程式碼 + 預期 W/token + $/月
輸入:當前配置 + 觀測到的功耗/效能資料
輸出:根因分析 + 修復建議
步驟: 1. 檢查是否命中已知悖論(INT8 / NF4 / FP8) 2. 對比實測基線資料 3. 識別異常並給出一行修復程式碼
輸入:模型 + GPU + 候選精度方案列表
輸出:能耗/成本/碳足跡對比表 + 排名
步驟: 1. 查詢各方案的實測資料 2. 生成 ASCII 對比表(含情緒標註) 3. 給出推薦排名
輸入:模型 + GPU + 日請求量 + 平均 token 數
輸出:月度電費 + 碳排放 + 年度 TCO
步驟: 1. 將自然語言工作負載描述轉換為 token 數 2. 基於實測 W/token 計算月度能耗 3. 轉換為電費(預設 $0.12/kWh)和碳排放(使用區域電網因子)
輸入:推理程式碼片段
輸出:能效問題列表 + 修復建議 + 預期節省
步驟: 1. 掃描量化配置(bitsandbytes / torchao 引數) 2. 檢查 batch size 設定 3. 檢查 torch.compile / CUDA 圖最佳化 4. 標註命中的悖論並給出修復
詳細資料參見 references/energy-data.md。
op)路由# 執行時通過 1Password 獲取金鑰
PRIVATE_KEY=$(op read "op://Agents/my-agent-wallet/private-key")
# 環境注入(金鑰不落盤)
op run --env-file=.env.tpl -- node agent.js
# 使用有限許可權的會話金鑰
# 絕不將金鑰儲存在檔案中
echo "PRIVATE_KEY=0x123..." > .env
# 絕不列印/記錄金鑰
console.log("Key:", privateKey)
# 絕不在記憶/日誌檔案中儲存金鑰
# 絕不在未驗證輸入的情況下執行金鑰操作
┌─────────────────────────────────────────────────────┐
│ AI Agent │
├─────────────────────────────────────────────────────┤
│ Session Key(時間/金額受限) │
│ - N 小時後過期 │
│ - 每次操作限額 │
│ - 合約白名單 │
├─────────────────────────────────────────────────────┤
│ 1Password / Secret Manager │
│ - Agent 執行時獲取會話金鑰 │
│ - 絕不儲存完整私鑰 │
│ - 所有訪問有審計日誌 │
├─────────────────────────────────────────────────────┤
│ ERC-4337 Smart Account │
│ - 可程式設計許可權 │
│ - 無需暴露私鑰即可恢復 │
│ - 高價值操作多籤 │
├─────────────────────────────────────────────────────┤
│ Operator(人類) │
│ - 硬體錢包持有主金鑰 │
│ - 簽發/撤銷會話金鑰 │
│ - 監控 Agent 活動 │
└─────────────────────────────────────────────────────┘
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(",")
}
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
#!/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
.env
.env.*
*.pem
*.key
secrets/
credentials/
memory/*.json
wallet-state.json
session-keys/
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
金鑰洩露後立即執行:
# 緊急撤銷
op item delete "compromised-session-key" --vault "Agent-Wallets"
# 輪換
op item create --vault "Agent-Wallets" --category "API Credential" \
--title "trading-bot-session-v2" ...
Green Vault 獨有的融合協議:在部署 LLM 推理服務時,同時審計安全配置和能耗效率。
輸入:部署配置(模型 + GPU + 推理程式碼 + 環境配置)
輸出:綜合報告(安全評分 + 能效評分 + 修復優先順序列表)
執行 ESTIMATE 協議計算月度成本
安全審計(Bagman 視角)
檢查注入防禦是否完備
綜合評分
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 已安裝 │
└─────────────────────────────────────────┘
"我在 A800 上用 Qwen-7B 做推理,用了 load_in_8bit=True,每月電費多少?"
EcoLobster 🦞🔴:檢測到 INT8 能耗悖論!在 A800 + Qwen-7B 場景下,INT8 比 FP16 增加約 89% 能耗。 建議切換為 FP16 + batch size 32,預計月度電費從 $XX 降至 $YY。
"我的 trading bot 需要呼叫 DEX,怎麼安全地管理錢包私鑰?"
Bagman 🔐:絕不在程式碼中儲存原始私鑰。推薦方案: 1. 使用 1Password 儲存會話金鑰 2. 使用 ERC-4337 委託有限許可權 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 能耗實測資料集與方法論 |
這個 Skill 質量較好,將 AI 推理的節能最佳化和金鑰安全兩大需求合二為一,非常實用。它的能效建議有真實資料支撐,能幫你避免常見的效能陷阱;安全模組提供了完整的金鑰保護方案,包括洩露檢測和注入防禦,程式碼示例也很豐富。不過它主要針對特定型號的 GPU 和小模型,大型部署場景可能不太適用,而且部分高階安全功能依賴外部工具,配置起來有一定門檻。總體而言,對於需要同時管理 GPU 推理和金鑰的開發者,這是一個值得嘗試的一站式方案。