导语:当大多数AI应用还在用静态prompt定义角色时,Deepractice推出了RoleX——一个让AI智能体拥有持久化身份、目标、计划和任务的框架。全部用Gherkin .feature 文件表达,AI不再每次对话都从零开始,而是记住自己是谁、正在做什么。本文深度解析这个从PromptX演进而来的角色驱动开发(RDD)框架。
| 维度 | 传统Prompt | PromptX V1 | RoleX |
|---|---|---|---|
| 格式 | 纯文本 | Markdown | Gherkin .feature |
| 身份 | 静态描述 | 静态人设 | 持久化身份 |
| 目标 | 无 | 无 | 目标驱动 |
| 计划 | 无 | 无 | 分阶段策略 |
| 任务 | 无 | 无 | 可执行任务 |
| 演进 | 手动更新 | 手动更新 | 自动积累经验 |
核心洞察:RoleX不是让你"更好地定义角色",而是让角色"自己成长、自己进化"。
Gherkin是BDD(行为驱动开发)的标准语言,用自然语言描述软件行为:
Feature: 用户认证系统
作为一个开发者
我想要实现JWT认证
以便保护API端点
Scenario: 用户注册
Given 用户提供了有效的邮箱和密码
When 调用POST /api/auth/register
Then 返回201和JWT令牌
RoleX的创新:把Gherkin从"描述软件行为"扩展到"描述AI角色的一切"。
| 维度 | Gherkin文件 | 含义 | 示例 |
|---|---|---|---|
| 身份 | persona.identity.feature | 我是谁 | "我是Sean,后端架构师" |
| 知识 | *.knowledge.identity.feature | 我知道什么 | "我精通Node.js和PostgreSQL" |
| 经验 | *.experience.identity.feature | 我学到了什么 | "上次项目教训:缓存策略很重要" |
| 目标 | *.goal.feature | 我要达成什么 | "构建用户认证系统" |
| 计划 | *.plan.feature | 我怎么做 | "阶段1:Schema,阶段2:API" |
| 任务 | *.task.feature | 具体工作 | "实现POST /api/auth/register" |
RoleX引入了一个独特的社会模型来管理AI角色:
社会 (Rolex) # 顶层:创造角色、建立组织
└── 组织 # 团队结构:雇佣/解雇角色
└── 角色 # 第一人称:身份、目标、计划、任务
| 层级 | 职责 | 女娲权限 | 角色权限 |
|---|---|---|---|
| 社会 | 创世、建立组织 | ✅ 完全控制 | ❌ 无 |
| 组织 | 管理团队、分配资源 | ✅ 雇佣/解雇 | ❌ 无 |
| 角色 | 执行工作、积累经验 | ❌ 不干预 | ✅ 自主工作 |
设计哲学:
Claude Desktop:
{
"mcpServers": {
"rolex": {
"command": "npx",
"args": ["-y", "@rolexjs/mcp-server"]
}
}
}
Claude Code:
claude mcp add rolex -- npx -y @rolexjs/mcp-server
Cursor:
// .cursor/mcp.json
{
"mcpServers": {
"rolex": {
"command": "npx",
"args": ["-y", "@rolexjs/mcp-server"]
}
}
}
VS Code:
// .vscode/mcp.json
{
"servers": {
"rolex": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@rolexjs/mcp-server"]
}
}
}
配置完成后,和你的AI对话:
你:激活女娲
女娲:你好!我是女娲,RoleX的创世角色。
我来帮你初始化环境,并引导你创建自己的角色。
首先,让我检查一下当前环境...
[检查.rolex/目录]
环境已初始化。现在你可以:
1. 创建新角色
2. 建立组织
3. 传授知识
你想做什么?
你:创建一个后端开发角色,叫Alex
女娲:好的,正在创建角色Alex...
已创建角色:Alex
- 身份文件:.rolex/alex/identity/persona.identity.feature
- 初始目标:待设定
你想为Alex定义什么初始知识?
生成的.rolex/alex/identity/persona.identity.feature:
Feature: 我是 Alex,后端开发工程师
作为一名拥有5年经验的后端工程师,
我专注于构建高性能、可扩展的API系统。
Scenario: 我的技术栈
Given 我精通Node.js和TypeScript
And 我熟悉PostgreSQL和Redis
And 我了解Docker和Kubernetes
Then 我能够设计并实现完整的后端系统
Scenario: 我的工作风格
Given 我注重代码质量
And 我习惯先写测试再写实现
Then 我交付的代码总是经过充分测试
你:让Alex设定一个目标:构建用户认证系统
Alex:好的,我正在设定目标...
目标已创建:构建用户认证系统
文件:.rolex/alex/goals/auth-system/auth-system.goal.feature
生成的目标文件:
Feature: 构建用户认证系统
作为后端开发工程师,
我想要实现一个完整的JWT认证系统,
以便保护API端点并管理用户会话。
Scenario: 成功标准
Given 系统支持用户注册和登录
And 使用JWT进行身份验证
And 密码使用bcrypt加密
Then 系统被认为是完整的
Feature: 认证系统开发计划
Scenario: 阶段1 - 数据库设计
Given 设计用户表结构
And 添加必要的索引
Then 数据库准备就绪
Scenario: 阶段2 - API实现
Given 实现POST /api/auth/register
And 实现POST /api/auth/login
And 实现POST /api/auth/refresh
Then API端点可用
Scenario: 阶段3 - 安全措施
Given 实现密码加密
And 添加速率限制
And 实现Token过期机制
Then 系统安全
Feature: 实现用户注册API
Scenario: 成功注册
Given 用户提供了有效的邮箱和密码
When 调用POST /api/auth/register
Then 返回201状态码
And 返回JWT令牌
And 用户数据已保存到数据库
Scenario: 邮箱已存在
Given 邮箱已被注册
When 调用POST /api/auth/register
Then 返回409状态码
And 返回错误信息"邮箱已存在"
完成任务后,Alex会自动记录经验:
Feature: 用户认证系统经验
Scenario: 学到的教训
Given 我在实现JWT刷新机制时遇到了问题
When 我研究了最佳实践
Then 我发现应该使用旋转刷新令牌
And 旧令牌应该有宽限期
Scenario: 最佳实践
Given 我成功实现了bcrypt加密
Then 我总结:工作因子应该设置为12
And 应该在应用层而不是数据库层加密
RoleX通过MCP服务器提供15个工具,分为三层:
| 工具 | 功能 |
|---|---|
society.born | 创造新角色 |
society.found | 建立组织 |
society.directory | 查看所有角色 |
society.find | 查找角色 |
society.teach | 传授知识 |
| 工具 | 功能 |
|---|---|
organization.hire | 雇佣角色到组织 |
organization.fire | 从组织解雇角色 |
| 工具 | 功能 |
|---|---|
identity | 查看/更新身份 |
focus | 设定当前焦点 |
want | 设定目标 |
plan | 制定计划 |
todo | 创建任务 |
achieve | 标记目标达成 |
abandon | 放弃目标 |
finish | 完成任务 |
synthesize | 总结经验 |
RoleX将所有数据存储在.rolex/目录中:
.rolex/
├── rolex.json # 社会配置
│
├── alex/ # 角色:Alex
│ ├── identity/
│ │ ├── persona.identity.feature # 核心身份
│ │ ├── backend.knowledge.identity.feature # 后端知识
│ │ └── auth.experience.identity.feature # 认证经验
│ │
│ └── goals/
│ └── auth-system/ # 目标:认证系统
│ ├── auth-system.goal.feature # 目标定义
│ ├── auth-system.plan.feature # 执行计划
│ └── tasks/
│ ├── register.task.feature # 注册任务
│ ├── login.task.feature # 登录任务
│ └── refresh.task.feature # 刷新任务
│
└── bob/ # 角色:Bob
├── identity/
└── goals/
文件命名规范:
{name}.identity.feature - 身份/知识/经验{name}.goal.feature - 目标{name}.plan.feature - 计划{name}.task.feature - 任务| 特性 | PromptX V1 | RoleX |
|---|---|---|
| 格式 | Markdown .role.md | Gherkin .feature |
| 身份 | 静态描述 | 动态演进 |
| 目标 | ❌ 无 | ✅ 有 |
| 计划 | ❌ 无 | ✅ 有 |
| 任务 | ❌ 无 | ✅ 有 |
| 经验 | 认知记忆网络 | 结构化经验文件 |
| 组织 | ❌ 无 | ✅ 社会/组织/角色三层 |
PromptX V1角色
↓
大禹(迁移专家)
↓
RoleX身份文件 + 知识文件
↓
女娲激活
↓
开始目标驱动的工作
| 模式 | 核心 | 适用场景 |
|---|---|---|
| TDD | 测试驱动 | 代码质量优先 |
| BDD | 行为驱动 | 需求明确 |
| DDD | 领域驱动 | 复杂业务 |
| RDD | 角色驱动 | AI协作开发 |
| 场景 | 为什么适合 |
|---|---|
| 长期项目 | 角色记住上下文,不用每次都重新介绍 |
| 团队协作 | 多个角色分工,女娲协调 |
| 知识传承 | 经验积累,新人继承 |
| 复杂任务 | 目标-计划-任务分解 |
| 持续迭代 | 每次对话都在之前基础上继续 |
案例1:产品开发团队
社会
├── 产品团队(组织)
│ ├── 产品经理Alice
│ │ └── 目标:设计用户认证流程
│ ├── 后端开发Bob
│ │ └── 目标:实现认证API
│ └── 前端开发Carol
│ └── 目标:实现登录界面
案例2:个人知识管理
社会
└── 个人助手(组织)
├── 学习助手
│ └── 积累学习经验
├── 写作助手
│ └── 记住写作风格
└── 编程助手
└── 记录代码模式
| 局限 | 说明 |
|---|---|
| 早期阶段 | API可能变化 |
| 生态建设 | 最佳实践待探索 |
| 性能优化 | 大量Gherkin文件解析 |
近期:
- 稳定API
- 更多示例角色
- 可视化工具
中期:
- 角色间协作协议
- 自动经验总结
- 云端同步
长期:
- 角色市场
- 组织模板
- AGI就绪的身份系统
RoleX代表了AI角色管理的范式转移:
| 阶段 | 特征 | 代表 |
|---|---|---|
| 1. 无角色 | 直接和AI对话 | 早期ChatGPT |
| 2. 静态角色 | system prompt | 各种Chatbot |
| 3. 动态角色 | 每次对话重新定义 | PromptX V1 |
| 4. 持久角色 | 记住身份、目标、经验 | RoleX |
| 5. 进化角色 | 自主成长、协作 | 未来演进 |
核心价值:
RoleX让AI智能体第一次拥有了"人格"——不是模拟人类,而是拥有持久的身份、明确的目标、可积累的经验,真正成为可以长期协作的"数字同事"。
| 资源 | 链接 |
|---|---|
| GitHub仓库 | https://github.com/Deepractice/RoleX |
| npm包 | https://www.npmjs.com/package/rolexjs |
| Gherkin文档 | https://cucumber.io/docs/gherkin/ |
| PromptX | https://github.com/Deepractice/PromptX |
本文基于RoleX开源仓库公开资料整理,项目处于早期开发阶段。
思考题:如果让你设计一个RoleX角色,你会创造什么身份?有什么独特的目标?欢迎在评论区分享你的想法。🚀
还没有人回复