一键导入
tool-builder
交互式创建和管理 Chat 模式的自定义 HTTP 工具。当用户想要创建新的 API 工具、配置 Chat 工具、添加自定义工具、管理自定义工具、或说"帮我创建一个 XX 工具"时使用此 Skill。也适用于调试、修复或删除已有的自定义工具。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
交互式创建和管理 Chat 模式的自定义 HTTP 工具。当用户想要创建新的 API 工具、配置 Chat 工具、添加自定义工具、管理自定义工具、或说"帮我创建一个 XX 工具"时使用此 Skill。也适用于调试、修复或删除已有的自定义工具。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
把 Proma 会话 JSONL 清洗为干净可读的 Markdown 对话,并支持对超长会话的渐进式读取(概览 / 大纲 / 搜索 / 按 turn 区间导出),避免一次性全量读撑爆上下文。当用户提到"清洗会话""解析对话文件""提取对话上下文""过滤流式冗余""导出会话 Markdown""把会话转成对话""整理 agent-sessions""看某个会话讲了什么"时使用此技能。
Proma 协作子 Agent Skill。用户任务复杂、可并行、长耗时、需要多个独立方向同时推进、需要真实可见进展、需要保留完整子任务记录,或用户明确说“开几个 Agent/多会话/一起协作/并行处理/spawn 子 Agent”时触发。用于判断是否调用 Proma 内置 collaboration 工具创建真实子会话。简单搜索、短调研、单文件修改、一次性代码审查优先使用 SDK 内置 SubAgent,不要创建真实 Proma 子会话。
Proma 内嵌自动任务与定时任务 Skill,属于 Proma 自带能力而不是用户临时安装的外部 Skill。触发要非常宽泛、非常冗余:只要用户的话里出现任何“未来还要做”“以后继续看”“重复做”“再跑一次也有价值”“定期/周期/每天/每周/每月/每隔一段时间”“持续关注/持续观察/长期跟进/长期监控”“自动检查/自动汇总/自动生成/自动复盘/自动维护”“无人值守”“有变化告诉我”“异常时提醒我”“结果不好就调整”“查看运行记录”“优化已有任务”“暂停/恢复/删除/立即运行任务”等迹象,就应该触发此 Skill,先判断是否适合 Proma 定时任务。也要覆盖一次性与有限次的延时执行信号:“X 小时/天后跑一次”“过一会儿/晚点/稍后自动做”“到某个具体时间点执行一次”“跑几次/连续观察 N 次就停”——这类未来无人值守的延时任务现在同样适合 Proma 定时任务(用 once 或 maxRuns),不要再一概当成不支持。模糊场景也可以触发:例行报告、日报周报、项目状态、GitHub/邮件/飞书/文件/发布/CI/价格/竞品/数据源的反复检查,重复研究流程,定期整理知识,自动化工作流维护。高频触发不代表必须创建任务;纯提醒/闹钟/倒计时、需要用户实时参与判断、或结果没有任何留存价值的事,要明确说明不推荐创建 Proma 定时任务,并给出替代做法。
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
| name | tool-builder |
| description | 交互式创建和管理 Chat 模式的自定义 HTTP 工具。当用户想要创建新的 API 工具、配置 Chat 工具、添加自定义工具、管理自定义工具、或说"帮我创建一个 XX 工具"时使用此 Skill。也适用于调试、修复或删除已有的自定义工具。 |
| version | 1.0.1 |
通过交互式对话帮助用户创建可在 Chat 模式中使用的自定义 HTTP API 工具。
向用户了解:
如果用户不确定具体 API,帮助推荐合适的公开 API。
根据收集的信息构建工具配置 JSON。配置文件位于 ~/.proma/chat-tools.json。
{
"toolStates": {
"memory": { "enabled": true },
"web-search": { "enabled": false },
"custom-weather": { "enabled": true }
},
"toolCredentials": {},
"customTools": [
{
"id": "custom-weather",
"name": "天气查询",
"description": "查询指定城市的当前天气信息",
"params": [
{ "name": "city", "type": "string", "description": "城市名称", "required": true }
],
"category": "custom",
"executorType": "http",
"httpConfig": {
"urlTemplate": "https://wttr.in/{{city}}?format=j1",
"method": "GET",
"resultPath": "current_condition"
}
}
]
}
| 字段 | 必填 | 说明 |
|---|---|---|
id | 是 | 唯一标识,必须以 custom- 前缀 + slug 格式(如 custom-weather) |
name | 是 | 显示名称 |
description | 是 | 工具描述,AI 据此决定何时调用 |
params | 是 | 参数列表,每个含 name/type/description/required |
category | 是 | 固定为 "custom" |
executorType | 是 | 固定为 "http" |
httpConfig | 是 | HTTP 请求配置 |
icon | 否 | Lucide 图标名(如 "Cloud"、"Languages") |
systemPromptAppend | 否 | 启用时注入的系统提示词 |
| 字段 | 必填 | 说明 |
|---|---|---|
urlTemplate | 是 | URL 模板,{{paramName}} 占位符会被参数值替换(自动 URL 编码) |
method | 是 | "GET" 或 "POST" |
headers | 否 | 请求头,常用于 API Key 认证:{ "Authorization": "Bearer xxx" } |
bodyTemplate | 否 | POST 请求体 JSON 模板,{{paramName}} 占位符会被替换(不编码) |
resultPath | 否 | 点号路径提取响应中的特定字段(如 "data.results") |
params[].type 支持:"string" / "number" / "boolean"
可选添加 enum 字段限制可选值:
{ "name": "unit", "type": "string", "description": "温度单位", "enum": ["celsius", "fahrenheit"] }
操作步骤:
~/.proma/chat-tools.json(如不存在则创建)customTools 数组(按 id 去重)toolStates 中添加 { "enabled": true } 使其默认启用写入后应用会自动检测文件变化并刷新工具列表。
告知用户:
用户反馈问题时,常见原因:
urlTemplateparams 定义resultPathheaders 中的 API Key修复后重新写入 chat-tools.json,应用自动刷新。
从 customTools 数组中移除对应工具,同时删除 toolStates 中的条目。
{
"id": "custom-weather",
"name": "天气查询",
"description": "查询指定城市的当前天气和温度信息。当用户询问天气时调用。",
"params": [
{ "name": "city", "type": "string", "description": "城市名称(英文)", "required": true }
],
"category": "custom",
"executorType": "http",
"httpConfig": {
"urlTemplate": "https://wttr.in/{{city}}?format=j1",
"method": "GET",
"resultPath": "current_condition"
}
}
{
"id": "custom-translate",
"name": "翻译",
"description": "将文本翻译为目标语言。当用户需要翻译时调用。",
"params": [
{ "name": "text", "type": "string", "description": "要翻译的文本", "required": true },
{ "name": "target_lang", "type": "string", "description": "目标语言代码", "required": true, "enum": ["EN", "ZH", "JA", "KO", "FR", "DE", "ES"] }
],
"category": "custom",
"executorType": "http",
"httpConfig": {
"urlTemplate": "https://api.example.com/translate",
"method": "POST",
"headers": { "Authorization": "Bearer YOUR_API_KEY" },
"bodyTemplate": "{\"text\": \"{{text}}\", \"target_lang\": \"{{target_lang}}\"}",
"resultPath": "translations.0.text"
}
}