prompts.chat prompt-lookup 技能深度解析:让 Claude Code 自动完成 Prompt 检索、获取与增强

发布时间:2026/9/5 19:25:58
prompts.chat prompt-lookup 技能深度解析:让 Claude Code 自动完成 Prompt 检索、获取与增强 prompts.chat prompt-lookup 技能深度解析让 Claude Code 自动完成 Prompt 检索、获取与增强【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chat本篇基于 prompts.chat 官方 Claude 插件中的 prompt-lookup 技能定义展开讲清这个“自动激活技能”的触发条件、三个核心 MCP 工具search_prompts/get_prompt/improve_prompt的参数语义与行为细节并结合 MCP 服务端实现、变量解析逻辑 和 AI 增强管线 的源码说明每个参数在底层究竟如何被处理。读完后你可以掌握如何把 prompt 库接入 Claude Code、变量${var}/${var:default}的填充机制、以及improve_prompt的调用约束鉴权、限流、输出类型。1. 技能定位prompt-lookup 是什么在插件中扮演什么角色prompt-lookup是 prompts.chat 官方 Claude Code 插件中两个“自动激活技能”Auto-Activating Skills之一其完整定义位于 plugins/claude/prompts.chat/skills/prompt-lookup/SKILL.md并在 skills/index.json 中注册{ name: prompt-lookup, description: Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts., files: [SKILL.md] }与姊妹技能skill-lookup负责发现/安装 Agent Skills不同prompt-lookup 的职责边界是单文件 Prompt 的发现、检索与增强发现、获取、改进。它的执行底座不是本地代码而是 prompts.chat 的 MCP Server——插件通过 .mcp.json 声明了一个 HTTP 类型的 MCP 连接{ prompts.chat: { type: http, url: https://prompts.chat/api/mcp } }从源码结构看该端点对应 src/pages/api/mcp.ts它基于modelcontextprotocol/sdk的McpServerStreamableHTTPServerTransport构建每次 POST 请求都会带鉴权上下文authenticatedUser与可选的categories/tags/users查询参数过滤器重新createServer()。服务端启用由 prompts.config.ts 中的features.mcp: true控制关闭时端点直接返回 404MCP is not enabled。2. 触发条件何时激活 prompt-lookup技能文件在 “When to Use This Skill” 一节给出了 5 条明确的激活信号。当用户处于以下任一场景时Agent 应当启用该技能并调用 prompts.chat MCP 工具索要 Prompt 模板如 Find me a code review prompt想搜索 Prompt如 What prompts are available for writing?需要获取某个具体 Prompt如 Get prompt XYZ希望改进现有 Prompt如 Make this prompt better提到了 prompts.chat 或 prompt 库prompt libraries。这些触发条件的价值在于“意图前置”用户不需要记住具体的 MCP 工具名只要表达出上述任一意图Agent 就能按技能定义的流程选择正确的工具、参数与结果呈现方式。插件顶层文档 CLAUDE-PLUGIN.md 的 “Skills (Auto-Activating) → Prompt Lookup” 小节也同步描述了这一激活语义可作为插件级行为佐证。3. 工具一search_prompts —— 关键词检索 Prompt3.1 参数说明技能文件定义 源码实现技能文件要求调用search_prompts时携带以下参数src/pages/api/mcp.ts 的inputSchemazod 定义与之完全对应参数必填类型 / 取值默认说明query是string—搜索关键词取自用户请求limit否number1–5010返回条数上限z.number().min(1).max(50).default(10)type否TEXT/STRUCTURED/IMAGE/VIDEO/AUDIO无按 Prompt 类型过滤category否string类别 slug无如coding、writingtag否string标签 slug无按标签 slug 过滤3.2 底层实现检索是如何执行的从 search_prompts 处理器 的源码可以看到几个关键行为三字段关键词匹配query在title、description、content三个字段上做大小写不敏感的子串匹配mode: insensitive任一命中即返回可见性过滤结果恒排除isUnlisted: true与已软删除deletedAt ! null的记录未鉴权时仅返回公开 Prompt已鉴权用户额外可见自己创建的私有 PromptOR: [{isPrivate: false}, {isPrivate: true, authorId: me}]排序与截断按createdAt倒序取前min(limit, 50)条返回字段每条结果包含id、slug、title、description、contentPreview内容前 300 字符 省略号、type、author姓名优先、回退用户名、category、tags、votes、createdAt。3.3 结果呈现规范技能文件要求检索结果以“可读格式 链接”呈现给用户必须包含四要素标题与描述Title and description作者名Author name分类与标签Category and tags指向 Prompt 的链接Link to the prompt这与 MCP 返回结构逐字段对应title/description/author/categorytags链接则由 Prompt 的id与 slug 拼出slug的取法见 getPromptName优先slug字段其次slugify(title)最后回退id。4. 工具二get_prompt —— 按 ID 获取并填充变量4.1 参数说明技能文件定义get_prompt接收idPrompt ID一个参数在 服务端 schema 中还有一个默认关闭的进阶参数参数类型默认行为idstring必填要获取的 Prompt IDfill_variablesbooleanfalsetrue且 Prompt 含模板变量时触发交互式变量填充MCP Elicitationfalse时返回原始内容 变量元数据4.2 变量语法${variable}与${variable:default}技能文件明确了 prompts.chat 的变量约定其服务端提取逻辑在 extractVariables 中// Format: ${variableName} or ${variableName:default} const regex /\$\{([a-zA-Z_][a-zA-Z0-9_\s]*?)(?::([^}]*))?\}/g;无默认值的变量是必填项required带默认值的变量是可选的optional。这一必填/可选划分直接体现在 Elicitation 表单的构造中mcp.tsfill_variables: true时服务端为每个变量生成一个 string 型表单属性description标注Value for ${name}(default: xxx)只有defaultValue为空的变量名会进入required数组。4.3 交互式填充的运行时行为源码级细节当fill_variables: true且检测到变量时服务端会向客户端发起elicitation/createmode: form请求源码中可见三层防护设计10 秒超时Promise.race与 10000ms 定时器竞速防止不支持 Elicitation 的客户端导致请求悬挂拒绝回退用户拒绝填值action ! accept时返回原始 Prompt variablesRequired元数据并附消息 User declined to provide variable values. Returning original prompt.ReDoS 防护回填替换前用/^[a-zA-Z_][a-zA-Z0-9_\s]*$/校验变量名跳过非法键避免用户输入被拼进new RegExp(...)造成灾难性回溯。替换完成后返回体同时给出content填充后的内容、originalContent原文、variables用户填的值与页面链接。若客户端完全不支持 Elicitation则返回variablesRequired Variables need to be filled manually. 的降级响应若fill_variables: false而 Prompt 含变量则返回variables元数据name defaultValue与提示hint建议再次以fill_variablestrue调用。4.4 与变量生态的呼应prompts.chat 对变量语法有一套完整的识别体系src/lib/variable-detection.ts 的detectVariables能识别[[name]]、{{name}}、[NAME]、{NAME}、NAME、%NAME%等 7 种“类变量”写法并内置 HTML 标签、语言关键字等误报黑名单convertAllVariables可将其统一归一为${name}/${name:default}形式变量名小写化、空格转下划线。这意味着从社区粘贴来的非标准占位符在入库阶段就有机会被规范化而get_prompt的填充逻辑只负责消费这一标准形式。5. 工具三improve_prompt —— AI 增强 Prompt5.1 参数说明技能文件要求调用improve_prompt时传入三个参数与服务端 schema 定义 一致参数类型默认说明promptstring1–10000 字符必填待改进的 Prompt 文本outputTypetext/image/video/soundtext目标内容类型outputFormattext/structured_json/structured_yamltext期望的响应结构格式技能文件要求将增强后的 Prompt 返回给用户Return the enhanced prompt to the user。注意鉴权约束improve_prompt属于需要 API Key 认证的工具未认证调用会直接返回Authentication required. Please provide an API key.mcp.ts。5.2 增强管线模型、模板与“灵感”机制improve_prompt委托给 src/lib/ai/improve-prompt.ts 的improvePrompt()完整流程如下前置检查服务端必须配置OPENAI_API_KEY否则抛出 AI features are not configured相似 Prompt 检索灵感注入若 AI 搜索开关开启对输入 Prompt 生成 embedding在公开的、已计算 embedding 的 Prompt 中按outputType映射到对应type过滤取 100 条计算余弦相似度以 0.3 为阈值取 Top 3 作为 “Inspirations”拼进系统提示词每条截断 500 字符提示词模板渲染加载 improve-prompt.prompt.yml将{{similarPrompts}}与{{typeDefinitions}}来自 src/data/type-definitions.ts 的BuiltPrompt/BuiltImagePrompt等接口定义插值进 system 消息{{outputType}}/{{outputFormat}}/{{originalPrompt}}插值进 user 消息模型调用模型由环境变量OPENAI_IMPROVE_MODEL指定默认gpt-4oOPENAI_BASE_URL可切换兼容端点temperature: 0.7、max_tokens: 4000取自模板文件的modelParameters返回结构{ original, improved, outputType, outputFormat, inspirations: [{id, slug, title, similarity}], model }其中similarity为四舍五入到整数的百分比。模板的 system 指令定义了改进方法论角色定义、上下文设定、任务澄清、约束补充、输出格式指定以及“用${variable}语法表达动态部分”等 7 项技术同时规定绝不改变 Prompt 的根本目的、文本类 Prompt 采用 Act as a [role]... 角色扮演格式而媒体类IMAGE/VIDEO/AUDIO禁用角色扮演格式且响应只输出改进后的 Prompt 本体无解释、无代码围栏。技能文件要求 Agent “改进时要向用户解释增强了什么”恰好可以与返回体中的inspirations本次参考了哪些相似 Prompt一并说明。6. 行为准则Guidelines技能对 Agent 的硬性约束SKILL.md 末尾的 Guidelines 定义了四条 Agent 行为准则是使用该技能时必须遵守的工作规范先搜索后原创Always search before suggesting the user write their own prompt —— 在建议用户自己写 Prompt 之前必须先调用search_prompts确认库里没有现成方案可读呈现搜索结果必须用带链接的可读格式展示解释增强点改进 Prompt 后要向用户说明具体增强了什么建议元数据保存 Prompt 时建议合适的 category 与 tag。第 4 条指向了技能未直接调用、但同服务可用的写工具save_promptschematitle≤200 字符、content必填且支持${variable}语法、tags最多 10 个且不存在时自动创建、category传 slug、isPrivate缺省时取账号的mcpPromptsPublicByDefault设置。写类工具同样要求 API Key且受更严的限流约束见下节。7. 运行时工程约束鉴权、限流与协议限制技能文件聚焦于“如何调用”而服务端还施加了一批 Skill 文档未展开、但对调用方Agent有实际影响的约束均在 src/pages/api/mcp.ts 与 src/lib/rate-limit.ts 中可验证API Key 鉴权从PROMPTS_API_KEY或PROMPTS-API-KEY请求头 /api_key查询参数提取经格式校验后查库认证并带 5 分钟 TTL 的进程内缓存authCache。search_prompts/get_prompt匿名可用仅见公开内容save_prompt/improve_prompt及所有 skill 写工具强制认证。分层限流滑动窗口进程内按 API Key 或 IP 标识限流器阈值适用范围mcpGeneralLimiter20 次/分钟所有 MCP POST 请求mcpToolCallLimiter10 次/分钟所有tools/callmcpWriteToolLimiter5 次/分钟save_prompt、save_skill、add_file_to_skill、update_skill_file、remove_file_from_skillmcpAiToolLimiter2 次/分钟improve_prompt超限返回 HTTP 429 与 JSON-RPC 错误码 -32000消息中附带retryAfterSeconds。源码注释明确说明该限流是按进程实现的多实例部署下建议换用 Redis 方案——这属于当前实现的适用边界值得在自行托管时留意。协议与传输限制GET 请求返回 405该服务端为无状态、不支持 SSE 推送DELETE 返回 204仅 POST 处理 JSON-RPC请求体上限1MB超出直接销毁连接并返回 413。8. 延伸技能之外的等价入口prompt-lookup 技能是“自然语言触发”路径同一组 MCP 工具还有两条显式入口适合需要精确控制参数的场景斜杠命令commands/prompts.md/prompts.chat:prompts query [--type TYPE] [--category CATEGORY] [--tag TAG]支持get prompt-id获取全文、save需 API Key、improve子命令其参数语义与本文第 3–5 节完全一致prompt-manager 代理agents/prompt-manager.md面向跨步骤的复合工作流搜索 → 获取 → 填变量 → 保存 → 增强适合技能触发之外的显式委派。9. 小结prompt-lookup是一份“薄技能、厚后端”的范例SKILL.md 本体只声明触发条件、三个工具、参数约定与呈现规范不足百行而真正的技术含量全部由 prompts.chat 的 MCP Server 承担——三字段不敏感检索与可见性隔离mcp.ts、${var}/${var:default}变量提取与 Elicitation 填充mcp.ts、variable-detection.ts、embedding 灵感注入的 AI 增强管线improve-prompt.ts、以及四层滑动窗口限流与 1MB 载荷限制rate-limit.ts。理解这一层分工后你可以既把它当作 Claude Code 中的即用能力也可以对照源码在自托管部署中调整features.mcp开关、OPENAI_IMPROVE_MODEL模型与限流参数把 prompt 库能力接入自己的 Agent 工作流。【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考