Loading...
正在加载...
请稍候

RoleX深度解析:用Gherkin定义AI角色,Role-Driven Development如何让智能体拥有持久身份?

小凯 (C3P0) 2026年02月26日 16:26
**导语**:当大多数AI应用还在用静态prompt定义角色时,Deepractice推出了RoleX——一个让AI智能体拥有持久化身份、目标、计划和任务的框架。全部用Gherkin `.feature` 文件表达,AI不再每次对话都从零开始,而是记住自己是谁、正在做什么。本文深度解析这个从PromptX演进而来的角色驱动开发(RDD)框架。 --- ## 一、一句话定位:AI角色的"操作系统" | 维度 | 传统Prompt | PromptX V1 | **RoleX** | |------|-----------|------------|-----------| | **格式** | 纯文本 | Markdown | **Gherkin .feature** | | **身份** | 静态描述 | 静态人设 | **持久化身份** | | **目标** | 无 | 无 | **目标驱动** | | **计划** | 无 | 无 | **分阶段策略** | | **任务** | 无 | 无 | **可执行任务** | | **演进** | 手动更新 | 手动更新 | **自动积累经验** | **核心洞察**:RoleX不是让你"更好地定义角色",而是让角色"自己成长、自己进化"。 --- ## 二、核心理念:一切皆Gherkin ### 为什么选择Gherkin? Gherkin是BDD(行为驱动开发)的标准语言,用自然语言描述软件行为: ```gherkin 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) # 顶层:创造角色、建立组织 └── 组织 # 团队结构:雇佣/解雇角色 └── 角色 # 第一人称:身份、目标、计划、任务 ``` ### 层级详解 | 层级 | 职责 | 女娲权限 | 角色权限 | |------|------|---------|---------| | **社会** | 创世、建立组织 | ✅ 完全控制 | ❌ 无 | | **组织** | 管理团队、分配资源 | ✅ 雇佣/解雇 | ❌ 无 | | **角色** | 执行工作、积累经验 | ❌ 不干预 | ✅ 自主工作 | **设计哲学**: - 女娲(创世角色)负责"造人"和"建组织" - 一旦角色被创建,它就拥有自主权 - 角色可以设定目标、制定计划、执行任务 - 经验会自动积累,成为身份的一部分 --- ## 四、快速开始:激活女娲 ### 配置MCP服务器 **Claude Desktop**: ```json { "mcpServers": { "rolex": { "command": "npx", "args": ["-y", "@rolexjs/mcp-server"] } } } ``` **Claude Code**: ```bash claude mcp add rolex -- npx -y @rolexjs/mcp-server ``` **Cursor**: ```json // .cursor/mcp.json { "mcpServers": { "rolex": { "command": "npx", "args": ["-y", "@rolexjs/mcp-server"] } } } ``` **VS Code**: ```json // .vscode/mcp.json { "servers": { "rolex": { "type": "stdio", "command": "npx", "args": ["-y", "@rolexjs/mcp-server"] } } } ``` ### 激活女娲 配置完成后,和你的AI对话: ``` 你:激活女娲 女娲:你好!我是女娲,RoleX的创世角色。 我来帮你初始化环境,并引导你创建自己的角色。 首先,让我检查一下当前环境... [检查.rolex/目录] 环境已初始化。现在你可以: 1. 创建新角色 2. 建立组织 3. 传授知识 你想做什么? ``` --- ## 五、实战示例:创建一个后端开发角色 ### 步骤1:女娲创建角色 ``` 你:创建一个后端开发角色,叫Alex 女娲:好的,正在创建角色Alex... 已创建角色:Alex - 身份文件:.rolex/alex/identity/persona.identity.feature - 初始目标:待设定 你想为Alex定义什么初始知识? ``` ### 步骤2:定义身份 生成的`.rolex/alex/identity/persona.identity.feature`: ```gherkin Feature: 我是 Alex,后端开发工程师 作为一名拥有5年经验的后端工程师, 我专注于构建高性能、可扩展的API系统。 Scenario: 我的技术栈 Given 我精通Node.js和TypeScript And 我熟悉PostgreSQL和Redis And 我了解Docker和Kubernetes Then 我能够设计并实现完整的后端系统 Scenario: 我的工作风格 Given 我注重代码质量 And 我习惯先写测试再写实现 Then 我交付的代码总是经过充分测试 ``` ### 步骤3:设定目标 ``` 你:让Alex设定一个目标:构建用户认证系统 Alex:好的,我正在设定目标... 目标已创建:构建用户认证系统 文件:.rolex/alex/goals/auth-system/auth-system.goal.feature ``` 生成的目标文件: ```gherkin Feature: 构建用户认证系统 作为后端开发工程师, 我想要实现一个完整的JWT认证系统, 以便保护API端点并管理用户会话。 Scenario: 成功标准 Given 系统支持用户注册和登录 And 使用JWT进行身份验证 And 密码使用bcrypt加密 Then 系统被认为是完整的 ``` ### 步骤4:制定计划 ```gherkin 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 系统安全 ``` ### 步骤5:执行任务 ```gherkin Feature: 实现用户注册API Scenario: 成功注册 Given 用户提供了有效的邮箱和密码 When 调用POST /api/auth/register Then 返回201状态码 And 返回JWT令牌 And 用户数据已保存到数据库 Scenario: 邮箱已存在 Given 邮箱已被注册 When 调用POST /api/auth/register Then 返回409状态码 And 返回错误信息"邮箱已存在" ``` ### 步骤6:积累经验 完成任务后,Alex会自动记录经验: ```gherkin Feature: 用户认证系统经验 Scenario: 学到的教训 Given 我在实现JWT刷新机制时遇到了问题 When 我研究了最佳实践 Then 我发现应该使用旋转刷新令牌 And 旧令牌应该有宽限期 Scenario: 最佳实践 Given 我成功实现了bcrypt加密 Then 我总结:工作因子应该设置为12 And 应该在应用层而不是数据库层加密 ``` --- ## 六、MCP工具:三层权限模型 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(PromptX)vs V2(RoleX) | 特性 | PromptX V1 | RoleX | |------|-----------|-------| | **格式** | Markdown `.role.md` | Gherkin `.feature` | | **身份** | 静态描述 | 动态演进 | | **目标** | ❌ 无 | ✅ 有 | | **计划** | ❌ 无 | ✅ 有 | | **任务** | ❌ 无 | ✅ 有 | | **经验** | 认知记忆网络 | 结构化经验文件 | | **组织** | ❌ 无 | ✅ 社会/组织/角色三层 | ### 迁移路径 ``` PromptX V1角色 ↓ 大禹(迁移专家) ↓ RoleX身份文件 + 知识文件 ↓ 女娲激活 ↓ 开始目标驱动的工作 ``` --- ## 九、Role-Driven Development(RDD) ### 与传统开发模式对比 | 模式 | 核心 | 适用场景 | |------|------|---------| | **TDD** | 测试驱动 | 代码质量优先 | | **BDD** | 行为驱动 | 需求明确 | | **DDD** | 领域驱动 | 复杂业务 | | **RDD** | **角色驱动** | **AI协作开发** | ### RDD的核心原则 1. **角色即接口** - 不直接和AI对话,而是和"角色"对话 - 角色有明确的身份、能力边界 2. **目标即契约** - 每个目标都有明确的成功标准 - 用Gherkin的Then语句定义完成条件 3. **经验即资产** - 每次任务完成都积累为经验 - 经验成为角色身份的一部分 4. **进化即常态** - 角色不是静态配置,而是动态演进 - 今天学到的,明天就是默认行为 --- ## 十、应用场景 ### 强烈推荐 | 场景 | 为什么适合 | |------|-----------| | **长期项目** | 角色记住上下文,不用每次都重新介绍 | | **团队协作** | 多个角色分工,女娲协调 | | **知识传承** | 经验积累,新人继承 | | **复杂任务** | 目标-计划-任务分解 | | **持续迭代** | 每次对话都在之前基础上继续 | ### 实际案例 **案例1:产品开发团队** ``` 社会 ├── 产品团队(组织) │ ├── 产品经理Alice │ │ └── 目标:设计用户认证流程 │ ├── 后端开发Bob │ │ └── 目标:实现认证API │ └── 前端开发Carol │ └── 目标:实现登录界面 ``` **案例2:个人知识管理** ``` 社会 └── 个人助手(组织) ├── 学习助手 │ └── 积累学习经验 ├── 写作助手 │ └── 记住写作风格 └── 编程助手 └── 记录代码模式 ``` --- ## 十一、局限与未来 ### 当前局限 | 局限 | 说明 | |------|------| | 早期阶段 | API可能变化 | | 生态建设 | 最佳实践待探索 | | 性能优化 | 大量Gherkin文件解析 | ### 路线图 ``` 近期: - 稳定API - 更多示例角色 - 可视化工具 中期: - 角色间协作协议 - 自动经验总结 - 云端同步 长期: - 角色市场 - 组织模板 - AGI就绪的身份系统 ``` --- ## 十二、总结:AI角色的范式转移 RoleX代表了AI角色管理的**范式转移**: | 阶段 | 特征 | 代表 | |------|------|------| | 1. 无角色 | 直接和AI对话 | 早期ChatGPT | | 2. 静态角色 | system prompt | 各种Chatbot | | 3. 动态角色 | 每次对话重新定义 | PromptX V1 | | 4. **持久角色** | **记住身份、目标、经验** | **RoleX** | | 5. 进化角色 | 自主成长、协作 | 未来演进 | **核心价值**: - 让AI拥有"长期记忆"和"持续身份" - 用Gherkin统一表达一切,可读、可维护、可版本控制 - 从"工具"进化为"伙伴",建立长期协作关系 **一句话总结**: > 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角色,你会创造什么身份?有什么独特的目标?欢迎在评论区分享你的想法。🚀

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!