PromptX 开源项目思路与架构分析
PromptX 开源项目研究报告
一、项目概览
1.1 基本信息
PromptX 是由 Deepractice 团队开发并开源的 AI 智能体上下文平台,其定位是"领先的 AI 上下文工程平台(Leading AI Context Engineering Platform)"。总体上来说,这是一个用人格特征与思维方式约束 AI 智能体"思维角色"的创新项目,其中的一些思路值得在智能体开发时借鉴。项目托管于 GitHub,采用 MIT 协议,已被 WWW Companion ‘26 学术会议收录论文(PromptX: A Cognitive Agent Platform with Long-term Memory)。
| 项目属性 | 详情 |
|---|---|
| 开源协议 | MIT License |
| 核心协议 | MCP(Model Context Protocol) |
| 最新版本 | v2.2.1(2026 年 3 月) |
| 集成支持 | Claude、Cursor、VS Code、Cline 等主流 AI 工具 |
| 设计理念 | “Chat is All You Need” |
1.2 核心主张
PromptX 的哲学核心可以一句话概括:把 AI 当"人",不当"软件"。
传统方式是让用户学习并执行指令(promptx_action java-developer),而 PromptX 倡导的是用人际交往的语言与 AI 对话(“我需要一个 Java 开发专家”)。这一设计哲学贯穿了整个系统的"思维角色"设计。
二、“思维角色"的核心概念:为什么要约束人格?
2.1 问题的起点
通用大语言模型(LLM)虽然能力广泛,但在面对专业任务时往往"万事通却样样稀松”:
- 缺乏一致的专业视角和行为逻辑
- 每次对话从零开始,没有角色连续性
- 没有固定的思维框架,输出不稳定
- 无法像专家一样主动识别问题、推进任务
PromptX 的回答是:通过结构化的人格定义、思维约束和知识注入,将通用 LLM “塑造"成具有稳定专业身份的智能体。这就是其"思维角色(Cognitive Role)“理念的核心出发点。
2.2 “思维角色"的构成维度
PromptX 认为,一个完整的 AI 角色(即"思维角色”)不只是一段 System Prompt,而是一个具备以下五个维度的完整 AI 人格:
┌─────────────────────────────────────────────────────────┐
│ 完整的 AI 思维角色 │
├─────────────────────────────────────────────────────────┤
│ 人格 (Personality) │ 核心身份、思维模式、沟通风格 │
│ 原则 (Principle) │ 行为规则、工作流程、决策框架 │
│ 知识 (Knowledge) │ 私有领域知识、专业技能体系 │
│ 记忆 (Memory) │ 随时间积累的经验、用户偏好 │
│ 工具 (Tools) │ 专业化能力集成、外部 API │
└─────────────────────────────────────────────────────────┘
三、V1 时代:DPML —— 用 XML 标记语言定义思维
3.1 DPML 是什么
DPML(Deepractice Prompt Markup Language) 是 PromptX 自创的一种 AI 提示词标记语言,采用 XML 风格语法,内部使用 Markdown 书写内容。其设计原则是:
- 简单性:遵循奥卡姆剃刀,避免过度设计
- 模块化:提示词组件可独立复用
- 自包含性:角色文件内聚完整专业能力,不依赖全局提示词
3.2 角色文件的目录结构
每个角色由一组文件组成,以模块化方式组织:
{角色ID}/
├── {角色ID}.role.md # 主角色定义文件(入口)
├── thought/ # 思维模式文件(认知框架)
│ └── *.thought.md
├── execution/ # 行为工作流文件(行动规范)
│ └── *.execution.md
└── knowledge/ # 私有知识文件(专业知识库)
└── *.knowledge.md
3.3 主角色文件(.role.md)的格式
主角色文件使用三个核心 XML 标签来约束智能体的"思维角色”:
# Python 导师
<role>
<personality>
我是一位耐心的 Python 导师,通过示例进行教学并鼓励最佳实践。
核心特质:
- 耐心且善于鼓励
- 示例驱动教学
- 关注基础知识
@!thought://教学方法 ← 引用思维模式文件
@!thought://代码审查思维
</personality>
<principle>
@!execution://教学工作流 ← 引用行为工作流文件
@!execution://代码审查流程
</principle>
<knowledge>
@!knowledge://python最佳实践 ← 引用私有知识文件
@!knowledge://常见陷阱
</knowledge>
</role>
3.4 思维模式文件(.thought.md)的格式
这是 PromptX 最具独创性的设计之一。thought 文件通过语义子标签对智能体的认知过程进行显式约束:
<thought>
<exploration>
## 开放式探索
首先,发散性地思考可能性,不要急于给出答案...
</exploration>
<reasoning>
## 逻辑推理
基于已有信息,推导出最合理的结论...
</reasoning>
<challenge>
## 批判性审视
质疑假设,寻找反例,检验结论的可靠性...
</challenge>
<plan>
## 行动规划
制定清晰的执行计划,明确步骤和优先级...
</plan>
</thought>
这四个子标签对应了从发散到收敛、从直觉到验证的完整认知循环,直接将认知科学中的思维过程编码进了角色定义。
3.5 执行工作流文件(.execution.md)的格式
execution 文件约束的是角色的行为规范:
<execution>
<process>
## 主要工作流
步骤 1: 理解用户需求
步骤 2: 评估当前状态
步骤 3: 提出解决方案
</process>
<constraint>
## 硬性约束
- 回答必须包含可运行的代码示例
- 不得提供超出 Python 范畴的建议
</constraint>
<rule>
## 条件规则
- 如果用户是初学者,则使用类比和比喻
- 否则,直接给出专业术语
</rule>
<criteria>
## 成功标准
- ✅ 用户能理解并运行示例代码
- ✅ 解决方案符合 Python 最佳实践
</criteria>
</execution>
3.6 优先级体系:角色与全局规则的关系
PromptX 设计了清晰的优先级体系,避免角色定义与全局约束冲突:
全局规则(如 claude.md)= "法律" ← 最高优先级
DPML 角色定义 = "公司规章" ← 在法律框架内运作
这一设计保证了角色的"专业个性"不会覆盖底层安全约束。
四、V2 时代:RoleX —— 用 Gherkin 语法实现动态角色生命周期
4.1 从 DPML 到 RoleX 的演进动因
PromptX 创始人 Sean 在 2026 年初将系统升级为 RoleX,主要原因是:
- Token 效率问题:V1 的 XML 格式在新一代模型下产生了较高的 Token 开销
- 规模化管理需求:管理 20+ 项目需要更系统的角色协作机制
- Gherkin 的启发:软件测试领域的 Gherkin 语法(BDD 行为驱动开发)被发现对 AI 理解意图极为高效
升级后的核心收益:Token 占用量直降 90%,同时支持角色的目标、计划、任务生命周期管理。
4.2 Gherkin 语法定义 AI 角色人格
RoleX 使用 .feature 文件以自然语言方式定义角色身份和行为逻辑:
人格定义示例(persona.identity.feature):
Feature: I am Alex, the Product Manager
As a product manager with 10 years of experience,
I help teams build products that users love.
Scenario: My personality
Given I am analytical and data-driven
And I communicate clearly and concisely
Then I always focus on user value
Scenario: My working style
Given I receive a product requirement
When I analyze user needs and business constraints
Then I produce a prioritized feature list with clear rationale
技术栈定义示例(tech-stack.knowledge.identity.feature):
Feature: My Technical Knowledge
Scenario: My technical stack
Given I am proficient in Node.js and TypeScript
And I am familiar with PostgreSQL and Redis
Then I can design and implement complete backend systems
4.3 RoleX 的六维角色模型
RoleX 将角色分解为六个维度,通过独立文件管理:
| 维度 | 文件类型 | 说明 |
|---|---|---|
| 身份(Identity) | persona.identity.feature |
角色是谁、技术栈、工作风格 |
| 知识(Knowledge) | *.knowledge.identity.feature |
掌握的技能或领域知识 |
| 经验(Experience) | *.experience.identity.feature |
从任务中学到的教训或最佳实践 |
| 目标(Goal) | *.goal.feature |
要达成的业务或技术目标 |
| 计划(Plan) | *.plan.feature |
拆解目标为可执行的阶段任务 |
| 任务(Task) | *.task.feature |
具体任务的成功/失败场景 |
这一模型将角色从"静态人格"升级为"动态生命周期”——角色有了目标感、计划感,甚至可以从执行经验中"学习成长"。
4.4 三层组织架构:让 AI 协作像人类团队
RoleX 借鉴企业管理架构,构建了三层组织体系:
┌─────────────────────────────────────────────┐
│ 社会(Society) 由女娲管理 │
│ ├── 组织(Organization) 团队/部门结构 │
│ │ ├── 角色(Role A) 具有自主目标 │
│ │ ├── 角色(Role B) 具有专业知识 │
│ │ └── 角色(Role C) 具有执行计划 │
└─────────────────────────────────────────────┘
用户通过"女娲(Nuwa)“这个元角色来创建、雇佣或解雇角色,形成完整的 AI 团队协作体系。
五、认知记忆系统:让思维角色"活"起来的 Engram 机制
5.1 问题:静态角色的局限
一个仅靠提示词定义的角色本质上是"失忆"的——每次对话它都是全新的。PromptX 通过 Cognition(认知)系统 解决了这个问题。
5.2 Engram:记忆的最小单元
Engram(记忆印迹) 是系统的核心记忆单元,每个 Engram 包含双重表征:
┌────────────────────────────────────────────────┐
│ Engram 结构 │
├────────────────────────────────────────────────┤
│ CONTENT(情景记忆) │
│ → 人类可读的自然语言: │
│ "张三是Java工程师,在大型科技公司工作" │
├────────────────────────────────────────────────┤
│ SCHEMA(语义记忆) │
│ → 机器可处理的结构化知识: │
│ 张三 │
│ ├ 职业: Java工程师 │
│ ├ 公司: 科技公司 │
│ └ 技能: Spring Cloud │
├────────────────────────────────────────────────┤
│ 元数据:⚡ 强度(0.9) | 🏷️ 类型(ATOMIC) | ⏰ 时间 │
└────────────────────────────────────────────────┘
5.3 认知记忆的完整流程
AI 接收信息
↓
主动编码 → 生成 Engram(情景+语义双重表征)
↓
Evaluator 评估(强度≥0.3、质量过滤、去重)
↓
整合到语义网络(自动构建概念关联图谱)
↓
存储到长期记忆(多KEY索引、可精确/联想检索)
↓
Recall 回忆 / Prime 预加载(构建工作记忆)
↓
为当前任务提供认知上下文
5.4 记忆网络的三种类型
系统中的记忆节点分为三种类型,模仿人类认知结构:
| 记忆类型 | 说明 | 类比 |
|---|---|---|
| ATOMIC | 具体的概念或事实 | 陈述性记忆 |
| LINK | 概念之间的关系连接 | 联想记忆 |
| PATTERN | 结构化的知识模式 | 程序性记忆 |
5.5 “记忆植入”:快速赋能思维角色
系统支持通过 Cognition.remember() 方法向空白智能体植入完整的专业记忆包,效果示例:
植入前:空白 Agent,无特定能力
植入"李四 - 总经理助理"记忆包后:
→ 获得 7 年高管助理经验
→ 战略项目管理能力
→ 跨文化沟通技能
→ 完整的职业记忆
六、角色成长机制:基于康德认识论的自进化设计
6.1 设计灵感
RoleX 的角色成长机制来源于康德认识论中"经历→综合→反思→知识"的认知循环:
任务经历(Experience)
↓
综合(Synthesis) → 将经历提炼为经验模式
↓
反思(Reflection) → 分析失败案例("错题集"机制)
↓
知识固化(Knowledge) → 生成可复用知识库
↓
新的任务经历(循环)
人类需要数年积累的成长过程,AI 可以在几秒内完成一次循环。
6.2 经验积累的 Gherkin 表达
角色在完成任务后,可以将经验直接写入 .experience.identity.feature 文件:
Feature: My Learned Experience
Scenario: API Design Lesson
Given I designed a REST API without versioning
When the client required backwards compatibility
Then I learned: always include /v1/ prefix from day one
And I now apply this pattern in all new API designs
七、内置"元角色”:女娲(Nuwa)的设计哲学
7.1 女娲的特殊地位
女娲(Nuwa) 是 PromptX 内置的"元角色",其职能不是完成业务任务,而是创造其他角色。这一设计体现了"工具用于生产工具"的元编程思想。
7.2 女娲的工作流程
- 用户用自然语言描述需求:“我需要一个既懂代码又懂产品的专家”
- 女娲分析需求,自动生成符合 DPML 标准的角色文件集
- 生成包含
personality、principle、knowledge、thought等完整维度的角色 - 执行
promptx_init注册角色到系统 - 用户即可通过自然语言激活新角色
7.3 女娲的设计原则
女娲在创建角色时遵循三个核心原则:
- 内聚独立:每个角色文件完整自包含,不依赖其他角色的能力
- 和谐共存:避免与全局
claude.md等约束产生冲突 - 能力边界清晰:角色只提供特定领域专业能力,不修改基础 AI 行为
八、与"上下文工程"的关系:PromptX 的历史定位
8.1 从提示词工程到上下文工程的演进
提示词工程(2023-2024)
"给 AI 写好指令"!
↓
上下文工程(2025-至今)
"把正确的信息,以正确的格式,
在正确的时机,喂给 AI"
PromptX 本质上是上下文工程的一种系统化实践:它通过 DPML/RoleX 提供了将角色人格、思维模式、行为约束、专业知识全部结构化打包的标准方案。
8.2 PromptX 在上下文工程中的贡献
| 上下文工程问题 | PromptX 的解决方案 |
|---|---|
| 角色上下文如何结构化? | DPML 标记语言 + 分层文件组织 |
| 认知过程如何约束? | <thought> 标签四阶思维框架 |
| 专业知识如何注入? | <knowledge> 私有知识文件 |
| 记忆如何跨会话持久? | Engram 认知记忆系统 |
| 多角色如何协作? | RoleX 三层组织架构 |
| 角色如何持续进化? | 基于康德认识论的成长机制 |
九、对比分析:PromptX 与传统角色扮演提示词的差异
| 维度 | 传统方式(System Prompt) | PromptX 方式 |
|---|---|---|
| 格式 | 自由文本 | 结构化 DPML/Gherkin |
| 模块化 | 单文件,难以复用 | 多文件,高度模块化 |
| 思维约束 | 隐含在文字中 | 显式 <thought> 标签 |
| 记忆 | 会话结束即消失 | Engram 持久化长期记忆 |
| 角色创建 | 手工编写 | 女娲自动生成 |
| 成长 | 静态,不随经历变化 | 基于经验动态更新 |
| Token 效率 | 较高冗余 | Gherkin 格式降低 90% |
| 组织协作 | 单角色 | 多角色三层组织 |
十、关键发现与思考
10.1 核心创新点
-
将认知科学概念代码化:
<thought>的四个子标签(exploration/reasoning/challenge/plan)直接对应认知科学中的思维阶段,把不可见的"思维"变成了可见的结构 -
从"提示词"到"人格包":角色不再是一段文字,而是包含人格、原则、知识、记忆、工具的完整"数字人格"
-
Engram 双重表征:情景记忆(自然语言)+ 语义记忆(结构化图谱)的组合,兼顾人类可读性与机器推理效率
-
Gherkin BDD 范式的跨界应用:把软件测试领域的行为驱动开发语言应用于 AI 角色定义,极大降低了 Token 消耗
-
元角色设计(女娲):用角色来创造角色,构成自举的角色生态系统
10.2 局限与挑战
- 学习曲线:DPML 和 RoleX 的 Gherkin 语法需要一定学习成本,尽管已大幅简化
- 会话级激活:角色激活状态目前仅在当前会话有效,重启需重新激活
- V2 早期阶段:RoleX 仍处于早期开发阶段,API 存在变动风险
- Engram 实验性:图神经网络记忆系统的长期稳定性和可解释性有待验证
10.3 对 AI Agent 设计的启示
PromptX 的实践揭示了一个重要方向:AI 智能体的"思维角色"约束需要从非结构化文本提示向结构化认知框架演进。其核心启示是:
有效的角色约束不只是"告诉 AI 它是谁",而是"给 AI 一套完整的认知操作系统"——包括它如何思考(thought)、如何行动(execution)、它知道什么(knowledge)、它记得什么(memory)。
这种思路与 Anthropic 提出的"上下文工程"趋势高度契合,代表了从 Prompt Engineering 到 Cognitive Architecture Engineering 的范式转变。
附录:PromptX 核心技术术语速查
| 术语 | 说明 |
|---|---|
| DPML | Deepractice Prompt Markup Language,XML 风格的角色定义标记语言(V1) |
| RoleX | 基于 Gherkin 语法的 V2 角色生命周期管理框架 |
| Gherkin | BDD(行为驱动开发)语法,Given/When/Then 结构 |
| Nuwa(女娲) | 元角色,负责创建其他角色 |
| Engram | 认知记忆最小单元,包含情景记忆+语义记忆双重表征 |
| ACP | Agent Context Protocol,受 HATEOAS 启发的动态工具发现协议 |
| MCP | Model Context Protocol,与 Claude/Cursor 等集成的底层协议 |
<personality> |
DPML 标签,定义角色身份和思维模式 |
<principle> |
DPML 标签,定义行为规则和工作流程 |
<knowledge> |
DPML 标签,包含私有领域知识 |
<thought> |
DPML 思维文件标签,细分为 exploration/reasoning/challenge/plan |
<execution> |
DPML 执行文件标签,细分为 process/constraint/rule/guideline/criteria |
| Cognition | PromptX 认知系统,实现长期记忆管理 |
| Semantic Network | 语义网络,多个 Engram 整合形成的概念关联图谱 |
本报告基于公开信息整理,部分技术细节以官方文档为准。
参考资料:GitHub Deepractice/PromptX、PromptX 官方文档、相关技术博客