skills-experimental/agent-id-system/SKILL.md
Deterministic agent ID system. Agent IDs (agentName@teamName). Request IDs (requestType-timestamp@agentId). formatAgentId/parseAgentId. @ separator. Use when [agent id system] is needed.
npx skillsauth add bianhaifeng789-hue/openclaw-config agent-id-systemInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
确定性 Agent ID 系统,用于 agent tracking。
场景:
Claude Code 方案:agentId.ts + Deterministic IDs OpenClaw 飞书适配:ID 系统 + Agent tracking
Format: agentName@teamName
Example: team-lead@my-project, researcher@my-project
Separator: @ (must NOT contain @ in agent name)
Format: {requestType}-{timestamp}@{agentId}
Example: shutdown-1702500000000@researcher@my-project
function formatAgentId(agentName: string, teamName: string): string {
return `${agentName}@${teamName}`
}
function parseAgentId(
agentId: string
): { agentName: string; teamName: string } | null {
const atIndex = agentId.indexOf('@')
if (atIndex === -1) return null
return {
agentName: agentId.slice(0, atIndex),
teamName: agentId.slice(atIndex + 1)
}
}
function generateRequestId(requestType: string, agentId: string): string {
const timestamp = Date.now()
return `${requestType}-${timestamp}@${agentId}`
}
function parseRequestId(
requestId: string
): { requestType: string; timestamp: number; agentId: string } | null {
const atIndex = requestId.indexOf('@')
if (atIndex === -1) return null
const prefix = requestId.slice(0, atIndex)
const agentId = requestId.slice(atIndex + 1)
const lastDashIndex = prefix.lastIndexOf('-')
if (lastDashIndex === -1) return null
const requestType = prefix.slice(0, lastDashIndex)
const timestamp = parseInt(prefix.slice(lastDashIndex + 1), 10)
if (isNaN(timestamp)) return null
return { requestType, timestamp, agentId }
}
{
"config": {"wide_screen_mode": true},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**🆔 Agent ID System**\n\n---\n\n**Agent IDs**:\n```\nFormat: agentName@teamName\nExample: researcher@my-project\nSeparator: @ (禁用 @ in agent name)\n```\n\n---\n\n**Request IDs**:\n```\nFormat: requestType-timestamp@agentId\nExample: shutdown-1702500000000@researcher@my-project\n```\n\n---\n\n**优势**:\n• **Reproducibility** - 相同 name/team = 相同 ID\n• **Human-readable** - 可读可调试\n• **Predictable** - 无需 lookup\n• **Crash recovery** - 可重连"
}
}
]
}
// memory/agent-id-system-state.json
{
"agents": {},
"stats": {
"totalAgents": 0,
"totalRequests": 0
},
"format": {
"agentId": "agentName@teamName",
"requestId": "requestType-timestamp@agentId",
"separator": "@"
},
"lastUpdate": "2026-04-12T00:59:00Z",
"notes": "Agent ID System Skill 创建完成。等待 agent creation 触发。"
}
| Claude Code | OpenClaw 飞书场景 | |-------------|------------------| | agentId.ts | Skill + IDs | | formatAgentId() | Format agent ID | | parseAgentId() | Parse agent ID | | generateRequestId() | Generate request ID | | @ separator | Separator |
此 Skill 在创建 agent 时自动生成 ID。
business
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings