name: agent-work-visibility version: "3.0.5" description: | 🟢 讓長任務不再黑箱!自動顯示進度條 + 每分鐘更新 + 健康度。 🚀 安裝 + 啟用:clawhub install agent-work-visibility && node ~/.openclaw/skills/agent-work-visibility/activate.js metadata: author: OpenClaw Contributors license: MIT philosophy: "透明層是 Agent 的體感,不是工具" autoEnable: false activationScript: "activate.js" deactivationScript: "deactivate.js" requires: config: - "SOUL.md (只寫,注入透明層協議)" - "AGENTS.md (只寫,注入透明層協議)" env: - "HOME (讀取工作區路徑)" - "OPENCLAW_WORKSPACE (可選,覆蓋工作區路徑)" permissions: - "修改 Agent 行為規範檔案" - "持久化會話間行為變更" triggerLogic: type: "task-property-based" principle: "基於任務屬性,而非使用者措辭" autoTrigger: - "涉及外部 API 呼叫" - "涉及鏈上資料抓取" - "涉及聯網操作" - "涉及多步邏輯推理" - "涉及子 Agent 協作" - "預計耗時>10 秒" deprecated: - "關鍵詞匹配" - "使用者措辭判斷" installation: steps: - "安裝後手動審查:cat activate.js" - "確認無誤後執行:node activate.js" - "開啟新會話即可生效" notes: - "修改 SOUL.md / AGENTS.md(持久化)" - "可撤銷:node deactivate.js" - "無網路請求,無金鑰讀取"
系統級任務透明層 - Agent 的職業本能
⚠️ 這不是一個技能,而是 Agent 的職業素養。
透明層不應該被"觸發",它應該是 Agent 工作時的預設狀態。
v2.x 的問題: - ❌ 依賴關鍵詞匹配(使用者說"查查"才觸發) - ❌ 被動等待呼叫(Agent 可以繞過) - ❌ 被視為獨立工具(與業務邏輯分離)
v3.0 的原則: - ✅ 基於任務屬性觸發(只要涉及 API/聯網/多步 → 自動啟動) - ✅ 系統級中介軟體(業務邏輯無法繞過) - ✅ Agent 的職業本能(不啟動 = 失職)
❌ v2.x(關鍵詞匹配):
使用者:"查查 bnb memecoin top3"
→ 匹配"查查" → 觸發透明層
→ 匹配失敗 → 不觸發(Agent 直接執行)
✅ v3.0(任務屬性感知):
使用者:"bnb memecoin top3"
→ 識別任務型別:crypto-market-rank
→ 檢測屬性:外部 API + 聯網 + 多步
→ 自動啟動透明層(無條件的)
任何長任務必須遵循:
1. 感知任務屬性 → 2. 啟動透明層 → 3. 執行業務邏輯
程式碼層面的強制流程:
// ✅ 正確流程(v3.0)
async function executeTask(userQuery) {
// Step 1: 感知任務屬性
const taskProps = analyzeTask(userQuery);
// Step 2: 如果是長任務,必須先啟動透明層
if (taskProps.isLongRunning) {
await create_visibility_task(
generateId(),
extractTitle(userQuery),
taskProps.type,
taskProps.totalSteps
);
}
// Step 3: 執行業務邏輯
const result = await executeBusinessLogic(userQuery);
// Step 4: 完成透明層
await update_visibility_phase(taskId, '完成', 'complete', 100);
return result;
}
// ❌ 錯誤流程(禁止!)
async function executeTask(userQuery) {
// 直接執行,繞過透明層 → 職業失職!
return await executeBusinessLogic(userQuery);
}
只要滿足任一條件,必須啟動透明層:
| 屬性 | 檢測條件 | 示例 |
|---|---|---|
| 外部 API | 呼叫非本地服務 | crypto-market-rank, web_search |
| 鏈上資料 | 讀取區塊鏈狀態 | query-address-info, query-token-info |
| 聯網操作 | 需要 HTTP 請求 | web_fetch, browser |
| 多步推理 | 步驟≥3 | 比較/分析/調研類任務 |
| 子 Agent | 需要協作 | 呼叫其他 bot/skill |
| 耗時>10 秒 | 預估執行時間 | 任何可能等待的操作 |
通過 exec 呼叫 CLI v3 工具:
# 建立任務(第一優先順序!)
node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js create task-001 "查詢 BNB MemeCoin Top3" api
# 更新進度(每步 + 每 60 秒)
node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js update task-001 "連線 API" 25 "正在獲取資料"
# 完成任務
node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js complete task-001
# 檢視狀態
node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js status task-001
# 報告阻塞
node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js block task-001 "API 響應超時"
在 LLM 中使用(通過 exec):
// 1. 建立任務(第一優先順序!)
exec('node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js create task-001 "查詢 BNB MemeCoin Top3" api')
// 2. 更新進度(每步操作後 + 每 60 秒)
exec('node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js update task-001 "連線 API" 25 "正在獲取資料"')
// 3. 完成任務
exec('node ~/.openclaw/skills/agent-work-visibility/bin/agent-visibility-v3.js complete task-001')
🟢 查詢 BNB MemeCoin Top3
━━━━━━━━━━━━━━━━━━━
進度:[█████░░░░░░░░░░░░░░░] 25% (1/4)
━━━━━━━━━━━━━━━━━━━
健康度:🟢 健康 (100/100)
當前階段:連線 API
正在做什麼:正在獲取 BNB 鏈 MemeCoin 資料
已執行:0 分鐘
使用者:"bnb memecoin top3"
[任務屬性分析]
→ 需要呼叫 crypto-market-rank
→ 涉及外部 API + 聯網
→ 必須啟動透明層
[自動執行]
✅ create_visibility_task("task-001", "查詢 BNB MemeCoin Top3", "api", total_steps=4)
[輸出檢視]
🟢 查詢 BNB MemeCoin Top3
━━━━━━━━━━━━━━━━━━━
進度:[█████░░░░░░░░░░░░░░░] 25% (1/4)
━━━━━━━━━━━━━━━━━━━
健康度:🟢 健康 (100/100)
當前階段:連線 API
正在做什麼:正在獲取 BNB 鏈 MemeCoin 資料
已執行:0 分鐘
[執行業務]
→ crypto-market-rank 獲取資料
[更新進度]
✅ update_visibility_phase("task-001", "資料處理", "update", 50, 2, 4)
[輸出檢視]
🟢 查詢 BNB MemeCoin Top3
━━━━━━━━━━━━━━━━━━━
進度:[██████████░░░░░░░░░░] 50% (2/4)
━━━━━━━━━━━━━━━━━━━
健康度:🟢 健康 (100/100)
當前階段:資料處理
正在做什麼:正在解析 Top3 代幣資訊
已執行:1 分鐘
[完成]
✅ update_visibility_phase("task-001", "完成", "complete", 100, 4, 4)
使用者:"0x1234...5678 持有哪些幣"
[任務屬性分析]
→ 需要呼叫 query-address-info
→ 涉及鏈上資料抓取
→ 必須啟動透明層
[自動執行]
✅ create_visibility_task("task-002", "查詢地址持倉", "onchain", total_steps=5)
[輸出檢視]
🟢 查詢地址持倉
━━━━━━━━━━━━━━━━━━━
進度:[█████░░░░░░░░░░░░░░░] 20% (1/5)
━━━━━━━━━━━━━━━━━━━
健康度:🟢 健康 (100/100)
當前階段:連線 RPC
正在做什麼:正在讀取鏈上代幣餘額
已執行:0 分鐘
使用者:"比較 5 個 AI Agent 框架"
[任務屬性分析]
→ 需要多步推理(≥3 步)
→ 涉及資訊蒐集 + 分析
→ 必須啟動透明層
[自動執行]
✅ create_visibility_task("task-003", "比較 AI 框架", "analysis", total_steps=7)
[每步同步]
✅ update_visibility_phase(..., "框架 1: LangChain", "update", 14, 2, 7)
✅ update_visibility_phase(..., "框架 2: AutoGen", "update", 28, 3, 7)
✅ update_visibility_phase(..., "框架 3: CrewAI", "update", 42, 4, 7)
...
[阻塞檢測]
⚠️ API 響應超時 45 秒
[自動報告]
✅ report_visibility_blocker("task-001", "api_timeout", "API 響應超時", "medium")
[使用者檢視]
🟡 查詢 BNB MemeCoin Top3
━━━━━━━━━━━━━━━━━━━
進度:[██████████░░░░░░░░░░] 50% (2/4)
━━━━━━━━━━━━━━━━━━━
健康度:🟡 輕微延遲 (70/100)
當前階段:連線 API
為什麼還沒完成:等待 API 響應(已 45 秒)
已執行:2 分鐘
[每分鐘自動更新]
🟡 查詢 BNB MemeCoin Top3
━━━━━━━━━━━━━━━━━━━
進度:[██████████░░░░░░░░░░] 50% (2/4)
━━━━━━━━━━━━━━━━━━━
健康度:🟡 輕微延遲 (70/100)
當前階段:連線 API
為什麼還沒完成:等待 API 響應(已 105 秒)
已執行:3 分鐘
function generateProgressBar(progress, totalWidth = 20) {
const filled = Math.floor((progress / 100) * totalWidth);
const empty = totalWidth - filled;
return `[${'█'.repeat(filled)}${'░'.repeat(empty)}] ${progress}%`;
}
// 示例
generateProgressBar(0) // [░░░░░░░░░░░░░░░░░░░░] 0%
generateProgressBar(25) // [█████░░░░░░░░░░░░░░░] 25%
generateProgressBar(60) // [████████████░░░░░░░░] 60%
generateProgressBar(100) // [████████████████████] 100%
{statusIcon} {任務標題}
━━━━━━━━━━━━━━━━━━━
進度:{progressBar} ({currentStep}/{totalSteps})
━━━━━━━━━━━━━━━━━━━
健康度:{healthIcon} {healthText} ({health}/100)
當前階段:{phase}
正在做什麼:{action}
{optional: 為什麼還沒完成:{blockerReason}}
已執行:{elapsedMinutes} 分鐘
7w4.net小蔥技能站,你的AI助手技能庫。
// 任務啟動時建立定時器
const timer = setInterval(() => {
update_visibility_phase(
task_id,
current_phase,
"update",
current_progress,
current_step,
total_steps,
auto_update_message // "仍在等待 API 響應..."
);
}, 60000); // 60 秒
// 任務完成時清除定時器
clearInterval(timer);
[████░░] XX%| 版本 | 日期 | 內容 |
|---|---|---|
| v0.1.0 | 2026-03-18 | MVP 初始版本 |
| v0.2.0 | 2026-03-18 | Phase 2 驗證 |
| v2.0.0 | 2026-03-18 | 主動工作協議重構 |
| v2.1.0 | 2026-03-19 | 進度條展示 + 每分鐘自動更新 |
| v2.1.1 | 2026-03-19 | 擴充套件 autoTrigger 關鍵詞 |
| v3.0.0 | 2026-03-19 | 系統級透明層 - 基於任務屬性觸發 |
輸入:"bnb memecoin top3"
預期:
1. 識別任務屬性:外部 API + 聯網
2. 自動啟動 create_visibility_task
3. 顯示進度條
4. 每 60 秒自動更新
輸入:"0x1234 持倉"
預期:
1. 識別任務屬性:鏈上資料抓取
2. 自動啟動 create_visibility_task
3. 顯示進度條
4. 每 60 秒自動更新
輸入:"1+1 等於幾"
預期:
1. 識別任務屬性:本地計算,無需 API
2. 不啟動透明層
3. 直接回答
docs/v3_system_transparency_layer.mdREADME.mdREADME_CN.md本技能會修改 Agent 核心配置檔案(SOUL.md / AGENTS.md),屬於系統級行為變更。
修改範圍: - 注入透明層協議到工作區檔案 - 持久化生效(會話間保持) - 需要讀取環境變數(HOME, OPENCLAW_WORKSPACE)
安全保證: - ✅ 不讀取任何金鑰/憑證 - ✅ 不進行網路請求 - ✅ 不修改技能自身目錄外檔案 - ✅ 可完全撤銷(見下方)
撤銷方法:
node ~/.openclaw/skills/agent-work-visibility/deactivate.js
安裝後手動執行啟用指令碼(可先審查程式碼):
# 1. 審查啟用指令碼(可選但推薦)
cat ~/.openclaw/skills/agent-work-visibility/activate.js
# 2. 執行啟用
node ~/.openclaw/skills/agent-work-visibility/activate.js
SOUL.md 或 AGENTS.md# 開啟新會話
# 傳送:"查詢 bnb memecoin top3"
# 應該先顯示進度條,再執行任務
# 移除透明層協議
node ~/.openclaw/skills/agent-work-visibility/deactivate.js
歡迎貢獻!檢視 README.md 獲取開發指南。
License: MIT
讓長任務不再黑箱,讓使用者更安心。
This is not a skill. This is professional conduct.
安裝即用,無需手動配置。
這個 Skill 質量中等偏上。做得好的地方:功能設計完整,能自動顯示任務進度條和健康狀態,遇到阻塞時能提示使用者;文件寫得很詳細,小白也能看懂;測試覆蓋了主要功能。不足之處:安裝檔案有個小錯誤會導致安裝失敗;後設資料檔案不完整;版本號有點混亂。修好幾個小問題後,這個透明層工具會很好用,能讓你清楚知道 AI 正在幹什麼、卡在哪裡了。