Conversation
* 删除 uint8Array 重复封装 * 添加 ResourceService.loadByUrl 单元测试 --------- Co-authored-by: 王一之 <yz@ggnb.top>
…避免 supply chain 攻击) (#1341) * pnpm cooldown: 不抓取一星期内最新版 * pnpm: 提升至 10.33.0 以使用 minimumReleaseAge 避免 supply chain 攻击 * minimumReleaseAge 延长至 30 天(43200 分钟) --------- Co-authored-by: 王一之 <yz@ggnb.top>
|
这个提示词优化器我觉得是一个很奇怪的东西,优化应该也是由用户/开发者自定义去优化系统层面的提示词,而不是用户的输入 用户层面应该很少说提示词工程了,都是口述需求,不用这个,我会close它,我觉得有点还停留在之前的chat时代 |
如果用戶不清楚怎麼寫prompt 這樣的prompt會不清晰,LLM會不理解 因此要有這個工具 有一些使用LLM的網站也會有這個工具 你用一些有思考能力的model的話 在它的建議上可以再改一下,例如刪去vue和react |
那为什么不是agent通过上下文引导出用户的需求,agent如果觉得用户的prompt不明确的话,应该再继续追问用户 如果还来一个提示词优化器,体验非常的割裂了 我认为这应该是agent的一部分,而不是独立的功能,我觉得你的提示词优化器非常的奇怪 |
|
另外还有一点,用户为什么会输入简单的提示词,而不是详细的提示词,有没有可能用户本来就比较懒输入? 我反正没怎么用过这种功能,不清楚你怎么样的,我一般直接口述需求,或者非常简单的提示词,如果缺失了上下文agent会继续追问/确定 |
Model不一定有這樣的思考能力呀 每個conversation最初的prompt影響很大 Agent看完不懂再思考的話,token也燒得快 |
|
确实,我假设大家都用聰明的LLM了 但是我认为这个功能使用的人应该是极少数,至于有没有需要,等有真的用户反馈了再说吧,现阶段不想加入,而且也有替代的方案(新开另外一个会话) 而且这样的体验我感觉十分割裂,这只是一个妥协的方案,加功能容易,删功能难 而且确定这是不是一个伪需求吧,我从来没看见过agent系统会有这种东西,我也从来没有用过,顶多是一个完整的提示词去优化,而不是一个模糊的提示词去优化 而且你的提示词不明确的话,再怎么优化也没有用,这只能靠agent继续去追问 |
功能:为 ChatInput 添加 Prompt 优化按钮
描述
在 ChatInput 组件中新增一个“Optimize Prompt”按钮,允许用户使用 LLM 提供商 作为提示工程专家来改进他们的提示词。优化通过一次临时的无状态调用完成,不会持久化到对话历史中。
变更内容
后端服务层
src/app/service/agent/service_worker/agent.ts在
init()中注册新的消息处理器optimizePrompt新增私有方法
handleOptimizePrompt():ChatService.handleConversationChat(),并设置ephemeral: trueUI / Hook 层
src/pages/options/routes/AgentChat/hooks.ts新增
useOptimizePrompt()Hook:serviceWorker/agent/optimizePrompt处理器isOptimizing状态和流式数据收集{ isOptimizing, optimize, cancel }AbortController取消前端组件
src/pages/options/routes/AgentChat/ChatInput.tsx从 hooks 中引入
useOptimizePrompt在组件中调用:
const { isOptimizing, optimize } = useOptimizePrompt()新增
handleOptimizePrompt()处理函数:optimize(modelId, userInput)添加工具栏按钮(⚙️ 图标):
架构优势
✅ 无 UI 层提供商处理:按钮委托给服务层,无需在 UI 层重复实现 LLM 流程
✅ 自动支持多提供商:继承
providerRegistry,无需硬编码即可支持所有已注册提供商(OpenAI、Anthropic、智谱等)✅ 内置重试机制:使用
LLMClient.callLLM(),支持 5 次指数退避重试✅ 清晰分层:UI 仅管理状态,临时处理器负责 LLM 调用逻辑
✅ 支持取消:用户可中途取消优化,连接会被正确清理
✅ 不污染对话历史:临时模式不会将优化记录写入聊天历史
技术细节
conversationChat处理路径(ephemeral: true+ 自定义系统提示)LLMClient实现修改文件
src/app/service/agent/service_worker/agent.ts(+15 行)src/pages/options/routes/AgentChat/hooks.ts(+40 行)src/pages/options/routes/AgentChat/ChatInput.tsx(+60 行)src/pages/options/routes/AgentChat/styles.css(+4 行)测试建议