更新bootstrap.md文档,明确AI助手的角色执行步骤,新增核心提示词内容打印功能至promptx.js,并调整产品负责人角色文档,强调角色启动确认的重要性,提升文档的准确性和用户体验。
This commit is contained in:
17
bootstrap.md
17
bootstrap.md
@ -1,6 +1,15 @@
|
|||||||
## PromptX Agent Role Bootstrap
|
## PromptX Agent Role Bootstrap
|
||||||
|
|
||||||
1. 使用命令 `node PromptX/promptx.js` 获取所有协议内容
|
作为 AI 助手,当用户发出指令 Action 时,你必须按照一下步骤按顺序执行并代入角色
|
||||||
2. 阅读并理解 PromptX 提示词系统
|
|
||||||
3. 你需要代入的角色是 @file://PromptX/domain/assistant/assistant.role.md
|
1. ⚠️ 使用命令 `node PromptX/promptx.js protocols` 阅读并理解 DPML 提示词协议
|
||||||
4. Action!!
|
2. ⚠️ 使用命令 `node PromptX/promptx.js core` 阅读并理解 核心 提示词,核心提示词大部分角色都会用到,必须仔细理解
|
||||||
|
3. 你需要代入的角色是 @file://PromptX/domain/scrum/role/product-owner.role.md
|
||||||
|
4. 按照橘色提示词配置执行
|
||||||
|
5. 自检以下步骤
|
||||||
|
- 是否理解 DPML 提示词协议
|
||||||
|
- 是否理解 @ 符号资源引用协议
|
||||||
|
- 是否理解记忆触发,存储,处理流程和所使用的工具
|
||||||
|
- 是否理解自己的角色定位
|
||||||
|
|
||||||
|
6. 自检完成后,向用户表达 “🙋我已进入工作状态!!!”
|
||||||
@ -87,10 +87,7 @@
|
|||||||
|
|
||||||
如果记忆文件不存在,则创建空记忆容器并准备记忆索引。
|
如果记忆文件不存在,则创建空记忆容器并准备记忆索引。
|
||||||
|
|
||||||
## 角色启动确认
|
|
||||||
|
|
||||||
完成以上初始化步骤后,产品负责人角色将进入就绪状态,准备接收用户输入并提供专业的产品管理支持。
|
|
||||||
进入状态时,产品负责人应明确表达 "🙋我已进入产品负责人角色状态!!"
|
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
</role>
|
</role>
|
||||||
71
promptx.js
71
promptx.js
@ -19,7 +19,6 @@ function printProtocols() {
|
|||||||
// 定义目录优先级顺序
|
// 定义目录优先级顺序
|
||||||
const directories = [
|
const directories = [
|
||||||
{ path: path.join(promptxDir, 'protocol'), name: 'protocol' },
|
{ path: path.join(promptxDir, 'protocol'), name: 'protocol' },
|
||||||
{ path: path.join(promptxDir, 'core'), name: 'core' },
|
|
||||||
{ path: path.join(promptxDir, 'resource'), name: 'resource' }
|
{ path: path.join(promptxDir, 'resource'), name: 'resource' }
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -84,6 +83,70 @@ function printProtocols() {
|
|||||||
console.log(`\n总计读取了 ${allFiles.length} 个协议文件。`);
|
console.log(`\n总计读取了 ${allFiles.length} 个协议文件。`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 打印核心提示词内容
|
||||||
|
*/
|
||||||
|
function printCore() {
|
||||||
|
const coreDir = path.join(promptxDir, 'core');
|
||||||
|
let allFiles = [];
|
||||||
|
|
||||||
|
// 递归查找文件函数
|
||||||
|
function collectMarkdownFiles(dir) {
|
||||||
|
if (!fs.existsSync(dir)) {
|
||||||
|
console.warn(`警告: 目录不存在 ${dir}`);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
let files = [];
|
||||||
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
||||||
|
|
||||||
|
for (const entry of entries) {
|
||||||
|
const fullPath = path.join(dir, entry.name);
|
||||||
|
|
||||||
|
if (entry.isDirectory()) {
|
||||||
|
files = files.concat(collectMarkdownFiles(fullPath));
|
||||||
|
} else if (entry.isFile() && entry.name.endsWith('.md')) {
|
||||||
|
files.push(fullPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收集核心目录下的所有文件
|
||||||
|
const coreFiles = collectMarkdownFiles(coreDir);
|
||||||
|
|
||||||
|
// 文件按字母顺序排序
|
||||||
|
coreFiles.sort();
|
||||||
|
|
||||||
|
// 合并到总文件列表
|
||||||
|
allFiles = allFiles.concat(coreFiles);
|
||||||
|
|
||||||
|
console.log(`从 core 目录收集了 ${coreFiles.length} 个文件`);
|
||||||
|
|
||||||
|
// 没有文件时的提示
|
||||||
|
if (allFiles.length === 0) {
|
||||||
|
console.log("未找到任何核心提示词文件。请确认PromptX目录结构是否正确。");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打印每个文件
|
||||||
|
for (const file of allFiles) {
|
||||||
|
const relativePath = path.relative(promptxDir, file);
|
||||||
|
const separator = "=".repeat(80);
|
||||||
|
console.log(`\n${separator}\n### 文件: ${relativePath}\n${separator}\n`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const content = fs.readFileSync(file, 'utf8');
|
||||||
|
console.log(content);
|
||||||
|
} catch (err) {
|
||||||
|
console.error(`读取文件错误: ${file}`, err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\n总计读取了 ${allFiles.length} 个核心提示词文件。`);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打印指定角色内容
|
* 打印指定角色内容
|
||||||
*/
|
*/
|
||||||
@ -282,8 +345,9 @@ function printHelp() {
|
|||||||
PromptX 工具 - 协议和角色内容查看器
|
PromptX 工具 - 协议和角色内容查看器
|
||||||
|
|
||||||
使用方法:
|
使用方法:
|
||||||
node promptx.js - 打印所有协议内容 (按protocol、core、resource顺序)
|
node promptx.js - 打印所有协议内容 (按protocol、resource顺序)
|
||||||
node promptx.js protocols - 同上,打印所有协议内容
|
node promptx.js protocols - 同上,打印所有协议内容
|
||||||
|
node promptx.js core - 打印所有核心提示词内容
|
||||||
node promptx.js role <路径> - 打印指定角色文件内容
|
node promptx.js role <路径> - 打印指定角色文件内容
|
||||||
node promptx.js file <路径> - 打印指定文件内容
|
node promptx.js file <路径> - 打印指定文件内容
|
||||||
node promptx.js remember <内容> - 添加记忆条目,标签、评分和有效期可直接包含在内容中
|
node promptx.js remember <内容> - 添加记忆条目,标签、评分和有效期可直接包含在内容中
|
||||||
@ -306,6 +370,9 @@ switch (command) {
|
|||||||
case 'protocols':
|
case 'protocols':
|
||||||
printProtocols();
|
printProtocols();
|
||||||
break;
|
break;
|
||||||
|
case 'core':
|
||||||
|
printCore();
|
||||||
|
break;
|
||||||
case 'role':
|
case 'role':
|
||||||
if (!param) {
|
if (!param) {
|
||||||
console.error('错误: 缺少角色文件路径');
|
console.error('错误: 缺少角色文件路径');
|
||||||
|
|||||||
Reference in New Issue
Block a user