📦 js-literals-protocol — JS模板调函数

v1.0.0

通过模板字面量标签函数协议,让大模型用自然JS语法直接调用本地函数,无需额外封装,兼具类型提示与可读性。

0· 101·0 当前·0 累计
roryyu 头像by @roryyu (Rory)
下载技能包
最后更新
2026/4/1
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能仅为使用JavaScript模板字面量标签函数作为LLM-to-tool协议的纯指令指南;不请求凭据、不安装、不访问文件,目的与描述一致。
评估建议
本技能为纯文档协议,用于通过模板字面量调用本地JavaScript函数,内容自洽,本身不安装代码或索取密钥。但若代理或运行时会执行LLM生成的模板字面量调用或模型输出的任意JS,需考虑运行时风险:确保在sandbox中执行,限制暴露给标签函数的主机函数/API,尽可能审查生成的调用后再执行,并采用安全评估模式(如允许的工具函数白名单),避免执行不可信代码。另注意技能源码无主页或作者元数据,若来源可信度对你重要,请在生产使用前向发布者索取更多信息。...
详细分析 ▾
用途与能力
名称/描述与内容一致:SKILL.md仅阐述JS模板字面量/标签函数协议,未请求无关二进制、环境变量或凭据。
指令范围
指令限于代码示例与编写标签函数、使用模板字面量的指南,不指导读取文件、访问环境变量或向外发送数据。文档假设主机将执行这些本地函数,符合工具协议预期。
安装机制
无安装规范,除文档外无代码文件;安装技能本身不会下载或写入磁盘。
凭证需求
无需环境变量、凭据或配置路径,声明需求与指令一致。
持久化与权限
技能标志为默认(非always),不请求持久或提权,也不修改其他技能配置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/1

- js-literals-protocol技能首次发布。 - 引入新协议,允许LLM使用模板字面量(标签模板)语法调用本地JavaScript函数。 - 为开发者与LLM提供实现指南与使用示例。 - 强调自然JS集成、类型安全与可读性等优势。 - 记录已知限制,包括对JavaScript运行时的依赖。

无害

安装命令

点击复制
官方npx clawhub@latest install js-literals-protocol
镜像加速npx clawhub@latest install js-literals-protocol --registry https://cn.longxiaskill.com

技能文档

# JavaScript Literals Protocol Tool Skill ## 概述 该技能为 LLM 建立了一种新的协议,使其能够使用 JavaScript 模板字面量语法调用工具。通过 tag function 机制,LLM 提示与本地 JavaScript 函数之间可实现无缝集成。 ## 协议定义 ### 核心概念 该协议借助 JavaScript 模板字面量与 tag function,让 LLM 能够调用本地函数。这为 LLM 与工具交互提供了一种自然、原生 JavaScript 的方式。 ### 语法格式 ``javascript // Define variables const var1 = value1; const var2 = value2; // Define tag function (tool) function toolTag(strings, ...expressions) { // Process the strings and expressions // Return the result } // LLM invokes the tool using template literal syntax const result = toolTagTemplate ${var1} with ${var2} expressions; ` ## 使用示例 ### 基础函数调用 `javascript // Define variables const person = "Mike"; const age = 28; // Define a simple tool function function describePerson(strings, personExp, ageExp) { const str0 = strings[0]; // "That " const str1 = strings[1]; // " is a " const str2 = strings[2]; // "." const ageStr = ageExp > 99 ? "centenarian" : "youngster"; return ${str0}${personExp}${str1}${ageStr}${str2}; } // LLM invokes the tool const output = describePersonThat ${person} is a ${age}.; console.log(output); // Output: That Mike is a youngster. ` ### 多参数工具调用 `javascript // Define a calculation tool function calculate(strings, ...nums) { const operation = strings.join(' ').trim(); let result; if (operation.includes('add')) { result = nums.reduce((a, b) => a + b, 0); } else if (operation.includes('multiply')) { result = nums.reduce((a, b) => a * b, 1); } return ${operation} ${nums.join(', ')} = ${result}; } // LLM invokes with multiple parameters const sum = calculateadd ${5} ${3} ${7}; const product = calculatemultiply ${2} ${4} ${6}; console.log(sum); // Output: add 5, 3, 7 = 15 console.log(product); // Output: multiply 2, 4, 6 = 48 ` ## 实现指南 ### 供开发者创建工具 1. 定义 tag function,首个参数接受 strings,其余参数接受可变表达式 2. 恰当处理模板字符串与表达式 3. 返回能为 LLM 提供有意义反馈的结果 ### 供 LLM 使用协议 1. 使用反引号包裹的模板字面量语法 2. 在 ${}` 占位符中插入变量与表达式 3. 将对应 tag function 作为模板字面量的前缀调用 ## 优势 1. JavaScript 原生:使用开发者熟悉的现有 JavaScript 语法 2. 自然集成:与 JavaScript 代码无缝融合 3. 类型安全:利用 JavaScript 的类型系统 4. 灵活:支持多参数与复杂逻辑 5. 可读:提供清晰、自解释的工具调用 ## 局限 1. 需要 JavaScript 运行时环境 2. 模板字面量语法在某些 LLM 提示中可能需要特殊处理 3. 受限于 JavaScript 函数能力 ## 示例工作流 1. 开发者使用 tag function 模式定义本地工具函数 2. 指示 LLM 使用 JavaScript 字面量协议 3. LLM 生成对已定义工具的模板字面量调用 4. 系统执行工具调用并将结果返回给 LLM 5. LLM 根据结果继续交互

数据来源ClawHub ↗ · 中文优化:龙虾技能库