<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Prompt Optimizer on KnightLi的博客</title>
        <link>https://www.knightli.com/tags/prompt-optimizer/</link>
        <description>Recent content in Prompt Optimizer on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 01 May 2026 03:09:07 +0800</lastBuildDate><atom:link href="https://www.knightli.com/tags/prompt-optimizer/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Prompt Optimizer：开源提示词优化、测试与 MCP 工具</title>
        <link>https://www.knightli.com/2026/05/01/prompt-optimizer-prompt-engineering-tool/</link>
        <pubDate>Fri, 01 May 2026 03:09:07 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/05/01/prompt-optimizer-prompt-engineering-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 是一个开源的提示词优化工具，目标很直接：帮助你把一段粗糙的提示词改得更清晰、更稳定，也更容易被大语言模型执行。&lt;/p&gt;
&lt;p&gt;它不只是一个“帮我润色 prompt”的页面。项目同时提供提示词优化、结果测试、对比评估、多模型接入、图像生成提示词处理，以及 MCP 集成。对经常写系统提示词、用户提示词、AI 工作流模板的人来说，它更像一个专门用来打磨提示词的工作台。&lt;/p&gt;
&lt;h2 id=&#34;它解决什么问题&#34;&gt;它解决什么问题
&lt;/h2&gt;&lt;p&gt;很多人使用 AI 时都会遇到类似问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提示词越写越长，但模型输出没有明显变好&lt;/li&gt;
&lt;li&gt;同一个需求换个模型就表现不稳定&lt;/li&gt;
&lt;li&gt;系统提示词和用户提示词混在一起，很难拆开调试&lt;/li&gt;
&lt;li&gt;改了一版 prompt，不知道是不是真的比上一版更好&lt;/li&gt;
&lt;li&gt;想复用变量模板，但每次都要手动替换和测试&lt;/li&gt;
&lt;li&gt;想把提示词优化能力接入其他 AI 工具，却缺少标准接口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 主要围绕这些问题设计。它把“写 prompt”拆成优化、测试、评估、对比、迭代几个环节，让提示词不再只靠感觉调整。&lt;/p&gt;
&lt;h2 id=&#34;主要功能&#34;&gt;主要功能
&lt;/h2&gt;&lt;h3 id=&#34;1-优化系统提示词和用户提示词&#34;&gt;1. 优化系统提示词和用户提示词
&lt;/h3&gt;&lt;p&gt;提示词并不只有一种。&lt;/p&gt;
&lt;p&gt;系统提示词通常负责定义角色、目标、边界、输出规范和工作方法；用户提示词则更接近一次具体任务的输入。两者混在一起时，模型容易抓不住重点，后续复用也困难。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 支持系统提示词优化和用户提示词优化。你可以分别处理长期复用的角色设定，也可以处理某次具体任务的输入表达。&lt;/p&gt;
&lt;p&gt;这对下面几类场景比较有用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;写 AI 编程助手的工作规则&lt;/li&gt;
&lt;li&gt;写客服、审稿、翻译、分析类角色提示词&lt;/li&gt;
&lt;li&gt;优化文生图提示词&lt;/li&gt;
&lt;li&gt;把临时需求整理成可复用模板&lt;/li&gt;
&lt;li&gt;为不同模型准备不同风格的 prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-测试和对比输出&#34;&gt;2. 测试和对比输出
&lt;/h3&gt;&lt;p&gt;只优化提示词还不够，关键是要知道优化后有没有变好。&lt;/p&gt;
&lt;p&gt;项目支持分析、单结果评估、多结果对比评估。也就是说，你可以把原始提示词和优化后的提示词放到同一个任务里跑，看模型输出是否更准确、更稳定、更符合目标。&lt;/p&gt;
&lt;p&gt;这比单纯“看起来更专业”的 prompt 更实用。因为很多提示词表面上写得完整，实际输出却可能更啰嗦、更僵硬，甚至把模型引向错误方向。对比测试能帮助你尽早发现这种问题。&lt;/p&gt;
&lt;h3 id=&#34;3-支持多模型&#34;&gt;3. 支持多模型
&lt;/h3&gt;&lt;p&gt;README 中提到项目支持 OpenAI、Gemini、DeepSeek、智谱 AI、SiliconFlow 等模型服务，也支持自定义 OpenAI 兼容接口。&lt;/p&gt;
&lt;p&gt;这点很重要。提示词效果和模型强相关，同一段 prompt 在不同模型上的表现可能差别很大。多模型测试可以帮助你判断：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;是提示词本身写得不好&lt;/li&gt;
&lt;li&gt;还是某个模型不适合这个任务&lt;/li&gt;
&lt;li&gt;是否需要为不同模型准备不同版本&lt;/li&gt;
&lt;li&gt;小模型能否通过更清晰的提示词接近可用效果&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你在本地使用 Ollama，或者公司内部有兼容 OpenAI 接口的模型服务，也可以通过自定义接口接入。&lt;/p&gt;
&lt;h3 id=&#34;4-高级测试模式&#34;&gt;4. 高级测试模式
&lt;/h3&gt;&lt;p&gt;项目提供上下文变量管理、多轮会话测试和 Function Calling 支持。&lt;/p&gt;
&lt;p&gt;变量管理适合模板化任务。比如你有一套闲置交易回复、商品描述、邮件回复、代码审查或文档生成提示词，只需要替换商品、价格、语气、目标用户等变量，就能快速测试不同输入下的表现。&lt;/p&gt;
&lt;p&gt;多轮会话测试适合验证长期对话能力。很多 prompt 在单轮问答里看起来不错，一旦进入多轮追问，就会忘记约束、偏离角色或重复解释。多轮测试可以更接近真实使用场景。&lt;/p&gt;
&lt;p&gt;Function Calling 支持则适合更工程化的 AI 应用。它能帮助你验证模型在工具调用、参数生成和结构化输出上的表现。&lt;/p&gt;
&lt;h3 id=&#34;5-图像生成提示词&#34;&gt;5. 图像生成提示词
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 也支持文生图和图生图相关能力，README 中提到集成 Gemini、Seedream 等图像模型。&lt;/p&gt;
&lt;p&gt;文生图提示词的优化重点和文本任务不同。它更关注主体、构图、空间关系、风格、材质、光线、情绪和限制条件。把一句很模糊的想法拆成更可控的视觉描述，通常比单纯加长提示词更有价值。&lt;/p&gt;
&lt;p&gt;如果你经常需要生成产品图、封面、插画、主视觉或风格参考图，这类优化会比较实用。&lt;/p&gt;
&lt;h2 id=&#34;使用方式&#34;&gt;使用方式
&lt;/h2&gt;&lt;p&gt;项目提供多种入口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在线版本&lt;/li&gt;
&lt;li&gt;Vercel 自部署&lt;/li&gt;
&lt;li&gt;桌面应用&lt;/li&gt;
&lt;li&gt;Chrome 插件&lt;/li&gt;
&lt;li&gt;Docker 部署&lt;/li&gt;
&lt;li&gt;Docker Compose 部署&lt;/li&gt;
&lt;li&gt;MCP Server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在线版本适合快速体验。项目说明中提到它是纯前端应用，数据存储在浏览器本地，并直接与 AI 服务商交互。&lt;/p&gt;
&lt;p&gt;桌面应用适合需要直接连接各种模型 API 的用户。浏览器环境容易遇到跨域限制，桌面应用可以绕过这类问题，尤其适合连接本地 Ollama 或一些跨域策略严格的商业 API。&lt;/p&gt;
&lt;p&gt;Docker 部署适合放在自己的服务器或内网环境里使用。README 给出的基础命令如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果要配置 API 密钥和访问密码，可以通过环境变量传入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;VITE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_username &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_password &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart unless-stopped &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name prompt-optimizer &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;国内访问 Docker Hub 较慢时，项目也提供了阿里云镜像地址，可按 README 中的说明替换镜像名。&lt;/p&gt;
&lt;h2 id=&#34;mcp-能做什么&#34;&gt;MCP 能做什么
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 支持 Model Context Protocol，也就是 MCP。&lt;/p&gt;
&lt;p&gt;通过 Docker 运行时，MCP 服务可以和 Web 应用一起启动，并通过 &lt;code&gt;/mcp&lt;/code&gt; 路径访问。这样它就不只是一个网页工具，而是可以被 Claude Desktop 等支持 MCP 的应用调用。&lt;/p&gt;
&lt;p&gt;README 中列出的 MCP 工具包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optimize-user-prompt&lt;/code&gt;：优化用户提示词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;optimize-system-prompt&lt;/code&gt;：优化系统提示词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iterate-prompt&lt;/code&gt;：对已有提示词做定向迭代&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类接口很适合放进 AI 工作流里。比如你在写复杂任务提示词时，可以让支持 MCP 的客户端直接调用提示词优化能力，而不必每次打开网页手动复制。&lt;/p&gt;
&lt;h2 id=&#34;和普通聊天工具有什么区别&#34;&gt;和普通聊天工具有什么区别
&lt;/h2&gt;&lt;p&gt;普通聊天工具当然也能帮你改 prompt，但它通常缺少几个环节：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不方便保存和对比多个版本&lt;/li&gt;
&lt;li&gt;不方便同时测试多个模型&lt;/li&gt;
&lt;li&gt;不方便把变量模板化&lt;/li&gt;
&lt;li&gt;不方便做多轮会话验证&lt;/li&gt;
&lt;li&gt;不方便接入 MCP 或部署到自己的环境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 的价值在于把提示词优化做成一个可重复的流程。它不只是给你一版“看起来更完整”的文本，而是让你围绕实际输出持续调整。&lt;/p&gt;
&lt;h2 id=&#34;适合谁使用&#34;&gt;适合谁使用
&lt;/h2&gt;&lt;p&gt;如果你符合下面几种情况，可以重点关注这个项目：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;经常写系统提示词&lt;/li&gt;
&lt;li&gt;经常为 AI 应用设计角色和输出格式&lt;/li&gt;
&lt;li&gt;需要比较不同模型的输出效果&lt;/li&gt;
&lt;li&gt;想把 prompt 做成可复用模板&lt;/li&gt;
&lt;li&gt;需要测试多轮对话或工具调用&lt;/li&gt;
&lt;li&gt;想把提示词优化能力接入 MCP 工作流&lt;/li&gt;
&lt;li&gt;希望在本地或内网部署提示词工具&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是偶尔问 AI 一个简单问题，用普通聊天页面就够了。这个工具更适合那些把提示词当成可维护资产的人。&lt;/p&gt;
&lt;h2 id=&#34;使用时要注意什么&#34;&gt;使用时要注意什么
&lt;/h2&gt;&lt;p&gt;第一，不要把优化结果当成绝对正确。&lt;/p&gt;
&lt;p&gt;提示词优化工具可以提高表达质量，但不能保证模型一定不会误解。重要任务仍然需要测试样例、人工检查和版本对比。&lt;/p&gt;
&lt;p&gt;第二，不要只追求更长。&lt;/p&gt;
&lt;p&gt;好的 prompt 不一定更长。它应该更清晰地表达目标、边界、输入输出格式和判断标准。无意义的规则堆叠反而会让模型抓不住重点。&lt;/p&gt;
&lt;p&gt;第三，要按模型调 prompt。&lt;/p&gt;
&lt;p&gt;不同模型对角色设定、格式约束、推理步骤和示例的敏感度不同。一个在大模型上表现很好的提示词，不一定适合小模型。多模型测试正是这个工具值得使用的原因之一。&lt;/p&gt;
&lt;p&gt;第四，部署时要考虑密钥和访问控制。&lt;/p&gt;
&lt;p&gt;如果你把它部署到公网，应该配置访问密码，并谨慎处理 API key。项目支持通过环境变量配置访问控制，不要把敏感配置直接写到公开仓库里。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最后一句&#34;&gt;最后一句
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; 适合用来把提示词从“临时手写的一段话”整理成“可以测试、可以比较、可以迭代的工作资产”。&lt;/p&gt;
&lt;p&gt;当你开始在多个模型、多个场景、多个版本之间维护 prompt 时，这类工具会比普通聊天窗口更顺手。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
