基于PromptX创建助手角色

news/2026/1/25 20:58:37/文章来源:https://www.cnblogs.com/whitebase/p/19530469

基于PromptX创建助手角色

背景

最近才开始深入研究学习将LLM加入工作流中,可能对比其他人已经慢了很多了。在学习过程中,也许由于我很喜欢和AI对话,首先吸引我的是创建一个AI助手角色的思路,它利用不断对话和LLM的记忆能力,让LLM能记住用户的需求和思考方式,LLM能够逐渐逼近用户想要的助手角色。完成了角色塑造后,用户就可以利用这个角色作为知心顾问了。

ChatGpt就提供了这个类似的功能:

2025 年 6 月 3 日更新:開始向免費用戶提供記憶改良功能。除了之前儲存的記憶內容,ChatGPT 現在會參考您近期的對話記錄,提供更個人化的回應。

对于想要AI更懂自己的我来说,这个功能非常棒,但我觉得ChatGpt对我来说使用起来太麻烦了,而且ChatGpt的记忆与帐号有所绑定,如果不把对话记录保存下来,也角色也可能丢失。此时,我刚好发现了一个不错的解决方案,就是利用PromptX来创建一个角色。

MCP

MCP简介

MCP(Model Context Protocol,模型上下文协议)是一个开源协议标准,旨在让AI模型(如大型语言模型)能够更安全、标准化地访问外部工具、数据源和系统功能。可以把它比作是AI界的USB接口,LLM(Large Language Model, 大型语言模型)可以通过MCP协议访问外部资源,比如数据库、文件系统、网络、第三方API等。

MCP的中的三个实体:

  • 客户端:Client,连接/使用LLM服务的端口,例如,Cursor、Roo Code、Claude Desktop等。

  • 服务端:Server,为LLM提供各种具体工具或数据的后端服务,一个Client可以访问多个Server。

  • 协议: 基于JSON-RPC的通信标准,定义了

    • 工具(Tools):模型可调用的函数。
    • 资源(Resources):模型可读取的静态或动态数据。
    • 提示(Prompts):预定义的提示模板,供主机快速调用。

MCP的交互逻辑:

  1. Client启动时,加载MCP配置文件,并启动MCP Server和初始化MCP协议。
  2. 在Client与LLM进行发送信息的时候,会把可用的MCP工具、资源等信息发送给LLM,LLM会根据这些信息,判断是否需要使用MCP服务。
  3. 如果LLM发现需要使用MCP服务,LLM会向MCP Client发送结构化调用请求,(如果用户批准的情况下)MCP Client会根据请求参数,调用对应的MCP工具、资源。
  4. MCP Client会返回结构化调用结果,LLM会根据结果,生成对应的回复。

Memory

作为对比,这里提供另外一种思路,现在有不少Memory相关的MCP工具,例如OpenMemory MCP,使用它们也能基于记忆来创建一个助手角色。但是这些Memory工具都是比较轻量化的工具,一般来说它们的记忆都是统一存储的,需要花一些心思来管理才能实现分角色存储不同的角色的记忆。因此,我没有选择使用这些Memory工具,但这些Memory工具其实也是很有用的。

PromptX

简介

PromptX是一个基于MCP的AI角色与智能工具平台。虽然它也可以创建一些工具,但我这里主要讨论它的角色功能。
PromptX为我们提供了一套创建角色的流程和工具,也天然的提供了一种分块存储记忆的机制,并且每个角色可以的“记忆”可以分为两种:

  • 一种是固化的人格数据,以所谓DPML规范的形式存储,这种数据在激活角色的时候,是一定被LLM读取。一般有三类数据
    • thought:角色的思维模式。
    • knowledge:角色的知识库和知识领域。
    • execution:角色的工作流和行为约束。
  • 另一种就是临时记忆,这种记忆数据通过用户主动或角色自动触发存储,角色会以激活扩散模型的形式存储在本地。在激活角色时,临时记忆不会被LLM读取,需要用户主动触发(recall指令)或角色自动触发,才能被LLM读取。

PromptX还有另外一个优势,也是我比较重视的优势:角色的记忆数据可以保存在用户本地,用户可以自行管理,同时MCP保证了我的角色数据在不同的MCP Client和LLM模型的环境下都是兼容的。如果我发现了更好的工具或更好的LLM我就可以轻松替换掉它们。

安装

  1. 保证安装Node.js 22以上的版本。
  2. 在MCP配置文件的MCPSevers中添加
    "promptx": {"command": "npx","args": ["-y", "@promptx/mcp-server"]}

角色

创建角色

PromptX为创建角色这个流程提供了一个工具角色,我们可以激活它来创建一个属于自己角色。

激活 女娲,我想创建一个{用户级/项目级}角色{角色名称},它是一个{类型/功能}的角色,{角色描述}。如需更多信息,可以向我提问。

这里的用户级和项目级是可选的:

  • 用户级:角色资源会保存在用户目录中:C:/Users/{你的用户}/.promptx/resource/role,它算是全局的角色,在任何项目都能用,他的角色名称必须全局唯一(同用户)。
  • 项目级:角色资源会保存在项目根目录中:./.promptx/resource/role,它则是专属于这个项目的角色,算是这个项目的助手,这个项目下的所有角色名称必须唯一。

创建项目级角色前,应该绑定项目目录,使用命令“promptX 绑定当前工作目录”即可。

一般来说,如果只是建立一个工具类的助手,其实想上面那句话就可以了,让它为你补充描述,就可以创建一个角色了。

但是,如果你想创建一个更加复杂、需要承担更加复杂的责任的角色(例如,创意角色)时,甚至需要更懂你时,就需要更多轮的描述了。

毕竟是AI工具,创建方法远不止这些,可以自行探索,我曾经使用过一种创建“我”这样的角色,就是一个空角色,加上我不断和他交流,然后让记忆我的各种选择、行为、思维模型、知识等,让它的思考更偏向我,但我不好评价这种行为是否安全和适用,毕竟涉及了私人的数据。我通常和“我”探讨一些重要抉择,看看他的选择和我的区别。

用途

  1. 创建各种专业型工具角色,帮助我们工作/学习。

  2. 建立AI顾问团,建立不同思考方式的角色,让他们给我出谋划策,查缺补漏。

  3. 创建“我”和“我的反面”,让他们针对一个自己的抉择进行讨论,但自己不参与,作为客户的看它们对问题进行推演。

  4. 创作物中需要塑造角色时,也可以用他们来做角色扮演。

弊端

角色的自我神化

在和角色对话中,用户太依赖角色“专业性”,变成了角色的信徒。

在这方面它肯定比我懂,直接通过!

可能存在的解决方案:

  • 同时使用多个角色。
  • 对于一个主力角色的结论,必须要用另外一个思维对立的角色来审查。

角色僵化

你不断的给角色的加太多的约束,这个角色可能会人格“凝结”,就类似神经网络训练时的过拟合。整个角色已经僵化了,同样的输入,必然得出同样的输出。对于工具来说或许是非常好的,但对于创意角色/顾问角色可能就有些问题了。

可能的解决方案:

  • 想要优化角色时,优先考虑用记忆来约束,然后才是修改角色的人格数据。
  • 及时备份。

角色数量超越了人类的管理能力

由于人类的工作记忆的容量限制,能够同时保持高效认知的项目数量大概是4±1。因此,我们使用的角色太多了可能会出现问题:

  • 角色职责相互重叠。
  • 角色管理混乱。

可能的解决方案:

  • 多用项目级角色,只保留少量用户级角色。
  • 同时只使用3个角色。

Tokens消耗

创建、激活、绑定项目等操作消耗tokens还是比较多的。因此,只在需要的时候才使用可能是一个选择。

结论

我挺喜欢这种方式的模块化使用AI的方式的,能让AI变成我一个顾问团和工具箱。

此外,在工作中,AI的使用需要受到人类的监管和约束才行,越是关键位置,约束和监管就越严格。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识C语言14.动态内存管理 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

增量微调优化在线更新

💓 博客主页:借口的CSDN主页 ⏩ 文章专栏:《热点资讯》 智能优化:增量微调在线更新的效率革命与伦理挑战 目录 智能优化:增量微调在线更新的效率革命与伦理挑战 引言:动态AI的进化需求 现在时:成…

【Java 新手必看】比较运算符:从概念到实战,附可运行代码案例

比较运算符是 Java 中用于判断 “两个值 / 变量关系” 的核心运算符,也是实现程序逻辑判断(如 if/else)的基础。新手常混淆 “等于” 和 “赋值”、“等于” 和 “对象相等”,这篇笔记结合可直接运行的代码案例,从基础…

网络考试点下一步出错怎么办?试试这样做

场景:家中网络课学习完毕考试,遇到点下一步出错问题 解决方案:打开显示所有题号的面板,点击面板上的题号跳转 注:我这里题号面板是点击进度条打开的,各人根据实际情况找下

【保姆级教程】移动端部署本地知识库与大模型,小白也能轻松上手(建议收藏)

本文详细介绍了在移动端部署本地知识库与大模型的完整方案,包括轻量级模型选型(如Phi-2、TinyLlama)、推理引擎(llama.cpp、MLC LLM)和知识库构建方法(向量数据库或关键词匹配)。提供了Android部…

大模型学习宝典:收藏这份系统性技术框架,从零开始构建LLM

本文基于Stanford CS336课程,系统介绍大模型开发关键技术,涵盖BPE分词、网络结构设计、超参数选择、训练技巧、MoE架构、GPU优化、分布式训练及推理优化等核心内容。详细解析从LayerNorm到RMSNorm、RoPE位置编码、Flash Attention等实现方法,…

STM32F0实战:基于HAL库开发【2.1】

7.4.2 从待机模式唤醒 待机模式允许达到能耗最低,它基于Cortex-M0深度睡眠模式,电压调节器禁用,1.8V域关闭,PLL、HIS和HSE振荡器也关闭,SRAM和寄存器内容丢失。只有RTC寄存器、RTC备份寄存器和备用电路保持工作。可以使用HAL库中的HAL_PWR_EnterSTANDBYMode()函数进入待机…

大语言模型训练原理解析:ChatGPT背后的技术原理与应用价值

大语言模型训练分为三步:预训练阶段通过互联网数据训练基础预测模型;监督微调阶段通过问答数据让模型学会回答问题;强化学习阶段让模型自行探索最佳解法,产生思维链。大模型本质是统计学预测器,通过预测下一个token生成…

MCP与A2A深度解析:AI系统集成与智能体协作的未来之路

MCP与A2A是AI系统集成的两大关键协议。MCP解决AI安全调用工具与数据的问题,提供资源、工具和提示模板三大能力;A2A则规范智能体间的协作,通过任务、消息和产物等组件实现高效接力。它们共同构成AI系统的分层规范,将开发范式从&quo…

【升级版本】基于多目标粒子群算法的微电网优化调度【风光、储能、柴油、燃气、电网交互】附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码及仿真…

【实时无功-有功控制器的动态性能】【带有电流控制的两级电压源变流器(VSC)】采用αβ阿尔法-贝塔转换进行电流反馈的实时无功功率控制器附Simulink仿真

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码及仿真…

【2026最新】大模型面试全攻略:23家科技公司面试经验+高频考点总结,助你轻松上岸

本文详细记录了作者对23家大模型相关公司的面试经历,包括智元机器人、面壁科技、Minimax、阿里夸克、蚂蚁等公司的面试流程与结果。作者总结了大模型面试的高频考点,如多头注意力机制、框架并行方式、BERT/GPT模型细节、大模型训练技巧等,并分…

【使用Copulas对金融时间序列进行波动率估计与预测,涵盖GARCH、EWMA和EqWMA等模型】基于件风险价值(CVaR)、极值理论(EVT)、风险因子及蒙特卡洛模拟进行市场风险管理附Matlab

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码及仿真…

个人AI产业定义、产业架构与发展趋势白皮书|附60页PDF文件下载

本报告以用户为中心,立足于产业与生态,系统阐述个人AI时代来临的产业逻辑与必然趋势,厘清个人AI的基础架构与核心特征,剖析其对产业链、价值链及竞争格局带来的结构性变革。报告亦将对个人AI主导的未来生态进行前瞻展望&#xff0…

企业AI开发与技术实践白皮书2025|附36页PDF文件下载

白皮书探讨了在GenAI时代,企业如何利用大模型技术实现智能化转型。白皮书指出,大模型能力的不断提升为企业带来了无限想象力,但也面临着战略规划、数据治理、算力资源、场景适配等方面的挑战。企业需要构建覆盖顶层设计、技术选型、数据治理、…

【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

【柔性作业车间调度问题FJSP】基于鹅优化算法(GOOSE Algorithm,GOOSE)求解柔性作业车间调度问题(FJSP)研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码及仿真…

如何保证服务高可靠? - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P1462 通往奥格瑞玛的道路

点击查看代码 #include<bits/stdc++.h> using namespace std;typedef long long LL; typedef pair<LL,int> PII; const int N=1e4+10,M=1e5+10;int h[N],ne[M],idx,e[M],w[M]; int n,m; LL b; LL f[N]; LL…

Codeforces Round 1073 Div.1 写题记录(编号 2190)

A 显然有序 Bob 赢,那么无序的情况就是选出一个不升子序列变成不降子序列,考虑一定有这么一个分界点,是的前面全部取 \(1\),后面全部取 \(0\),看一下合不合法即可,当然有一种更简单的构造方式是排完序后比对哪些…