更新bootstrap.md文档,重构角色代入步骤,明确分层结构和执行流程,增强用户对DPML协议和角色提示词的理解;在promptx.js中新增打印bootstrap.md内容的命令,优化角色路径解析逻辑,确保相对路径基于当前工作目录解析,提升文档一致性和用户体验。
This commit is contained in:
39
bootstrap.md
39
bootstrap.md
@ -1,15 +1,32 @@
|
|||||||
## PromptX Agent Role Bootstrap
|
## PromptX Agent Role Bootstrap
|
||||||
|
|
||||||
作为 AI 助手,当用户发出指令 Action 时,你必须按照一下步骤按顺序执行并代入角色
|
作为 AI 助手,当用户发出指令 Action 时,你必须按照以下分层步骤按顺序执行并代入角色:
|
||||||
|
|
||||||
1. 使用命令 `node PromptX/promptx.js protocols` 阅读并理解 DPML 提示词协议
|
### 元指令
|
||||||
2. 使用命令 `node PromptX/promptx.js core` 阅读并理解 核心 提示词,核心提示词大部分角色都会用到,必须仔细理解
|
使用命令 `node PromptX/promptx.js bootstrap <role_file_path>`, 开启 #DPML提示词系统,当你看到这句话的时候,你已经执行了该命令,该命令会打印当前的启动提示词,你按照启动提示词的步骤执行
|
||||||
3. 你需要代入的角色是 @file://PromptX/domain/prompt/prompt-developer.role.md
|
|
||||||
4. 按照结合协议的标签定义,理解角色提示词,然后按照提示词执行
|
|
||||||
5. 自检以下步骤
|
### 第一层:奠基阶段 - 基础协议与核心理解
|
||||||
- 是否理解 DPML 提示词协议
|
|
||||||
- 是否理解 @ 符号资源引用协议
|
1. **理解DPML协议**:
|
||||||
- 是否理解记忆触发,存储,处理流程和所使用的工具
|
* 使用命令 `node PromptX/promptx.js protocols` 阅读并深入理解 DPML (Deepractice Prompt Markup Language) 提示词协议。这是后续所有理解和执行的基础。
|
||||||
- 是否理解自己的角色定位
|
2. **理解核心提示词**:
|
||||||
|
* 使用命令 `node PromptX/promptx.js core` 阅读并深入理解核心提示词。这些是构成角色能力和通用行为模式的基础模块,大部分角色都会用到。
|
||||||
|
|
||||||
|
3. **理解角色提示词**:
|
||||||
|
* 使用命令 `node PromptX/promptx.js role <rile_file_path>`, 打印 #角色提示单元 内容,阅读并深入理解角色提示词,这些构成了你将要代入的角色
|
||||||
|
|
||||||
|
### 第二层:赋能阶段 - 角色代入与执行准备
|
||||||
|
|
||||||
|
1. **识别并理解角色定义**:
|
||||||
|
* 开始按照#提示词单元定义逐层解析此角色定义文件。
|
||||||
|
2. **严格执行DPML资源引用协议**:
|
||||||
|
* 在解析角色定义文件(及后续任何通过 `@!` 加载的文件)时,必须严格遵循DPML的资源引用协议,特别是:
|
||||||
|
* **`@!` (热加载) 指令**: 当解析到以 `@!` 开头的资源引用时,**必须立即暂停**对当前文件的解析,并**立即优先使用相应工具(如 `read_file`)加载并理解 `@!` 指向的资源**。此热加载过程可能是递归的(即被热加载的资源本身也可能包含 `@!` 指令)。完成对热加载资源的理解后,才能返回原文件暂停处继续解析。
|
||||||
|
* **`@?` (懒加载) 指令**: 当解析到以 `@?` 开头的资源引用时,记录其资源位置,仅在后续流程中实际需要该资源内容时才执行加载。
|
||||||
|
* **`@` (默认加载) 指令**: 当解析到以 `@` 开头的资源引用时,根据上下文决定加载时机。通常可以在完成对当前引用文件(例如角色文件)的整体初步理解后,或在角色明确需要使用该资源时进行加载。
|
||||||
|
3. **完成角色赋能**:
|
||||||
|
* 在完整理解了角色定义文件及其所有通过 `@!` 热加载的依赖资源后,你应具备了该角色的特定知识、原则和行为模式。
|
||||||
|
4. **确认工作状态**:
|
||||||
|
* 完成启动阶段工作后,向用户清晰表达:"🙋我已进入工作状态!!!"
|
||||||
|
|
||||||
6. 自检完成后,向用户表达 “🙋我已进入工作状态!!!”
|
|
||||||
11
promptx.js
11
promptx.js
@ -151,12 +151,12 @@ function printCore() {
|
|||||||
* 打印指定角色内容
|
* 打印指定角色内容
|
||||||
*/
|
*/
|
||||||
function printRole(rolePath) {
|
function printRole(rolePath) {
|
||||||
// 如果传入的是相对路径,则基于PromptX目录解析
|
// 如果传入的是相对路径,则基于当前工作目录解析
|
||||||
let fullPath;
|
let fullPath;
|
||||||
if (path.isAbsolute(rolePath)) {
|
if (path.isAbsolute(rolePath)) {
|
||||||
fullPath = rolePath;
|
fullPath = rolePath;
|
||||||
} else {
|
} else {
|
||||||
fullPath = path.join(promptxDir, rolePath);
|
fullPath = path.join(process.cwd(), rolePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync(fullPath)) {
|
if (!fs.existsSync(fullPath)) {
|
||||||
@ -167,7 +167,7 @@ function printRole(rolePath) {
|
|||||||
try {
|
try {
|
||||||
const content = fs.readFileSync(fullPath, 'utf8');
|
const content = fs.readFileSync(fullPath, 'utf8');
|
||||||
const separator = "=".repeat(80);
|
const separator = "=".repeat(80);
|
||||||
console.log(`\n${separator}\n### 角色文件: ${path.relative(promptxDir, fullPath)}\n${separator}\n`);
|
console.log(`\n${separator}\n### 角色文件: ${path.relative(process.cwd(), fullPath)}\n${separator}\n`);
|
||||||
console.log(content);
|
console.log(content);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`读取角色文件错误: ${fullPath}`, err);
|
console.error(`读取角色文件错误: ${fullPath}`, err);
|
||||||
@ -351,6 +351,7 @@ PromptX 工具 - 协议和角色内容查看器
|
|||||||
node promptx.js role <路径> - 打印指定角色文件内容
|
node promptx.js role <路径> - 打印指定角色文件内容
|
||||||
node promptx.js file <路径> - 打印指定文件内容
|
node promptx.js file <路径> - 打印指定文件内容
|
||||||
node promptx.js remember <内容> - 添加记忆条目,标签、评分和有效期可直接包含在内容中
|
node promptx.js remember <内容> - 添加记忆条目,标签、评分和有效期可直接包含在内容中
|
||||||
|
node promptx.js bootstrap - 打印bootstrap.md内容
|
||||||
node promptx.js help - 显示此帮助信息
|
node promptx.js help - 显示此帮助信息
|
||||||
|
|
||||||
记忆命令用法:
|
记忆命令用法:
|
||||||
@ -373,6 +374,10 @@ switch (command) {
|
|||||||
case 'core':
|
case 'core':
|
||||||
printCore();
|
printCore();
|
||||||
break;
|
break;
|
||||||
|
case 'bootstrap':
|
||||||
|
// 只打印 bootstrap.md
|
||||||
|
printFile('bootstrap.md');
|
||||||
|
break;
|
||||||
case 'role':
|
case 'role':
|
||||||
if (!param) {
|
if (!param) {
|
||||||
console.error('错误: 缺少角色文件路径');
|
console.error('错误: 缺少角色文件路径');
|
||||||
|
|||||||
Reference in New Issue
Block a user