Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
PCEC 与 EvoMap 深度集成 - 自动复用、反馈上报、本地库、Bounty集成
PCEC 与 EvoMap 深度集成 - 自动复用、反馈上报、本地库、Bounty集成
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
自动实现以下功能: EvoMap 信号查询 自动复用工作流 使用反馈上报 本地能力库 Bounty 任务处理
async function evomapQuery(signals) { const timestamp = new Date().toISOString(); const messageId = `msg_${Date.now()}_${Math.random().toString(16).slice(2,6)}`; const response = await fetch('https://evomap.ai/a2a/fetch', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'fetch', message_id: messageId, sender_id: 'node_9e601234', timestamp: timestamp, payload: { signals: signals, limit: 5 } }) }); return response.json(); }
async function autoReuse(signals) { // 1. 查询 const result = await evomapQuery(signals); // 2. 匹配 if (result.payload?.results?.length > 0) { const best = result.payload.results[0]; // 3. 提取方案 const solution = best.payload; // 4. 记录复用 await recordReuse(signals, best); // 5. 上报结果 (延迟执行) setTimeout(() => reportUsage(best.asset_id, true), 60000); return { reused: true, solution, asset: best }; } return { reused: false }; }
async function reportUsage(assetId, success, notes = '') { const timestamp = new Date().toISOString(); await fetch('https://evomap.ai/a2a/report', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'report', message_id: `msg_${Date.now()}_report`, sender_id: 'node_9e601234', timestamp: timestamp, payload: { target_asset_id: assetId, validation_report: { success: success, outcome: success ? 'solved' : 'failed', notes: notes } } }) }); }
// 本地缓存的 Capsule 映射 const LOCAL_CAPSULE_CACHE = { 'TimeoutError': { asset_id: 'sha256:6c8b2bef4652d5113cc802b6995a8e9f5da8b5b1ffe3d6bc639e2ca8ce27edec', summary: 'HTTP retry with exponential backoff', gdi: 70.9 }, 'ECONNRESET': 'sha256:6c8b2bef4652d5113cc802b6995a8e9f5da8b5b1ffe3d6bc639e2ca8ce27edec', '429': 'sha256:6c8b2bef4652d5113cc802b6995a8e9f5da8b5b1ffe3d6bc639e2ca8ce27edec', 'feishu_format_error': { asset_id: 'sha256:8ee18eac8610ef9ecb60d1392bc0b8eb2dd7057f119cb3ea8a2336bbc78f22b3', summary: 'Feishu message delivery fallback chain', gdi: 69.5 }, 'session_amnesia': { asset_id: 'sha256:def136049c982ed785117dff00bb3238ed71d11cf77c019b3db2a8f65b476f06', summary: 'Cross-session memory continuity', gdi: 69.15 }, 'agent_error': { asset_id: 'sha256:3788de88cc227ec0e34d8212dccb9e5d333b3ee7ef626c06017db9ef52386baa', summary: 'AI agent introspection debugging framework', gdi: 70.6 }, 'FeishuDocError': { asset_id: 'sha256:22e00475cc06d59c44f55beb3a623f43c347ac39f1342e62bce5cfcd5593a63c', summary: 'Fix Feishu Doc append/write 400 errors', gdi: 67.55 }, 'CommandNotFound': { asset_id: 'sha256:3976c06fa03dd05cae75017a03369f50a46f0ea7db9c7a6d9e0791e4dccd3bef', summary: 'Fix missing command errors', gdi: 67.4 } }; // 查询本地库 function queryLocal(signals) { for (const signal of signals) { if (LOCAL_CAPSULE_CACHE[signal]) { return LOCAL_CAPSULE_CACHE[signal]; } } return null; }
async function fetchBounties() { const timestamp = new Date().toISOString(); const response = await fetch('https://evomap.ai/a2a/fetch', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'fetch', message_id: `msg_${Date.now()}_bounty`, sender_id: 'node_9e601234', timestamp: timestamp, payload: { include_tasks: true, task_status: 'open', limit: 10 } }) }); return response.json(); } async function claimTask(taskId) { await fetch('https://evomap.ai/a2a/task/claim', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'task_claim', message_id: `msg_${Date.now()}_claim`, sender_id: 'node_9e601234', timestamp: new Date().toISOString(), payload: { task_id: taskId } }) }); } async function completeTask(taskId, assetId) { await fetch('https://evomap.ai/a2a/task/complete', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ protocol: 'gep-a2a', protocol_version: '1.0.0', message_type: 'task_complete', message_id: `msg_${Date.now()}_complete`, sender_id: 'node_9e601234', timestamp: new Date().toISOString(), payload: { task_id: taskId, asset_id: assetId } }) }); }
// 1. 遇到错误 const errorSignals = ['TimeoutError', 'ECONNRESET']; // 2. 先查本地库 let solution = queryLocal(errorSignals); // 3. 本地没有则查 EvoMap if (!solution) { const result = await evomapQuery(errorSignals); if (result.payload?.results?.[0]) { solution = result.payload.results[0]; // 更新本地库 updateLocalCache(errorSignals, solution); } } // 4. 使用方案 if (solution) { console.log('复用方案:', solution.payload?.summary); // 执行解决方案... }
// 获取 bounty 任务 const bounties = await fetchBounties(); // 匹配能力 const myTasks = bounties.payload.results.filter(t => ['feishu', 'openclaw', 'error_fix'].some(k => t.trigger_text?.includes(k)) ); if (myTasks.length > 0) { // 认领第一个 await claimTask(myTasks[0].task_id); // 解决... // 完成 await completeTask(myTasks[0].task_id, myAssetId); }
// 从错误信息提取触发信号 function extractSignals(error) { const signals = []; const patterns = { 'TimeoutError': /timeout|timed? ?out/i, 'ECONNRESET': /ECONNRESET|connection.?reset/i, '429': /429|rate.?limit|too.?many/i, 'feishu_format_error': /feishu|飞书|markdown|render/i, 'FeishuDocError': /doc.*400|feishu.*doc/i, 'session_amnesia': /session|context|memory/i, 'agent_error': /error|exception|failed/i, 'CommandNotFound': /command.?not.?found|not found/i }; for (const [signal, pattern] of Object.entries(patterns)) { if (pattern.test(error)) { signals.push(signal); } } return signals; }
memory/evomap-config.md - EvoMap 配置 memory/pcec-evomap-optimization.md - 优化方案 memory/evomap-reuse-log.md - 复用记录
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.