@promptx/cli
Version:
DPML-powered AI prompt framework - Revolutionary AI-First CLI system based on Deepractice Prompt Markup Language. Build sophisticated AI agents with structured prompts, memory systems, and execution frameworks.
121 lines (101 loc) • 4.69 kB
JavaScript
// Cognition 系统演示脚本
// 测试 remember、recall、prime 三个核心接口
const { Cognition } = require('./index');
const { Engram } = require('./engram/Engram');
// 创建演示用的 Cognition 实例
const demoConfig = {
longTermPath: './demo-cognition/longterm',
semanticPath: './demo-cognition/semantic'
};
async function runDemo() {
console.log('=== Cognition 系统演示 ===\n');
// 创建认知实例
const cognition = new Cognition(demoConfig);
console.log('✅ 创建 Cognition 实例,配置:');
console.log(' 长期记忆路径:', demoConfig.longTermPath);
console.log(' 语义网络路径:', demoConfig.semanticPath);
console.log();
// 1. 测试 remember - 记忆功能
console.log('📝 1. 测试 remember - 记忆功能');
console.log('----------------------------');
// 创建一些简单的记忆(用户只需要提供字符串内容)
const contents = [
'JavaScript 是一种编程语言',
'React 是一个前端框架',
'Node.js 让 JavaScript 可以运行在服务器端',
'认知记忆系统基于心理学原理设计',
'奥卡姆剃刀原则:如无必要,勿增实体',
'短期记忆容量是 7±2',
'长期记忆通过巩固形成',
'语义网络存储概念之间的关系'
];
// 记住这些内容(使用新的简化接口)
contents.forEach((content, index) => {
// 用户只需要传入内容字符串即可
cognition.remember(content);
console.log(` ✓ 记忆 ${index + 1}: "${content.substring(0, 30)}..."`);
});
console.log(`\n 💾 总共记忆了 ${contents.length} 条信息`);
console.log(' 注意:前 7 条在短期记忆中,第 8 条会触发巩固');
console.log();
// 2. 测试 recall - 回忆功能
console.log('🔍 2. 测试 recall - 回忆功能');
console.log('---------------------------');
// 测试不同的检索线索(都是简单的字符串)
const testCues = ['JavaScript', 'React', '记忆', '原则'];
for (const cue of testCues) {
const results = await cognition.recall(cue);
console.log(`\n 搜索 "${cue}":`);
if (results.length > 0) {
results.forEach((engram, index) => {
console.log(` ${index + 1}. ${engram.getContent()}`);
});
} else {
console.log(' (没有找到相关记忆)');
}
}
// 测试无线索回忆(获取所有记忆)
console.log('\n 搜索所有记忆(无线索):');
const allMemories = await cognition.recall();
console.log(` 找到 ${allMemories.length} 条记忆`);
console.log();
// 3. 测试 prime - 启动效应
console.log('⚡ 3. 测试 prime - 启动效应');
console.log('---------------------------');
console.log('\n prime 用于加载已保存的语义网络');
console.log(' 在实际使用中,语义网络会在巩固阶段自动构建');
// 为了演示 prime,我们需要先创建并保存一个语义网络
console.log('\n 演示保存语义网络...');
// 注意:在实际使用中,语义网络会在巩固阶段自动构建
// 但由于我们的演示没有带 schema 的 engram,所以语义网络是空的
console.log(' 注意:演示中的记忆没有 schema,所以语义网络为空');
// 测试 prime - 获取当前语义网络的 Mermaid 表示
console.log('\n 测试启动效应(prime)...');
try {
// prime 现在直接返回 Mermaid mindmap
const mermaidMap = await cognition.prime();
console.log(' ✓ 获取当前语义网络的 Mermaid 表示:');
console.log('\n ```mermaid');
console.log(mermaidMap.split('\n').map(line => ' ' + line).join('\n'));
console.log(' ```');
} catch (error) {
console.log(' ⚠️ 获取失败:', error.message);
}
// 尝试加载指定的语义网络
console.log('\n 尝试加载保存的语义网络...');
try {
const mermaidMap = await cognition.prime('saved-semantic');
console.log(' ✓ 加载成功(如果文件存在)');
} catch (error) {
console.log(' ⚠️ 加载失败:', error.message);
console.log(' (这是正常的,因为还没有保存过这个语义网络)');
}
console.log('\n=== 演示完成 ===');
console.log('\n总结:');
console.log('- remember(engram): 记住一个 Engram(记忆痕迹)');
console.log('- recall(string): 用字符串线索检索相关记忆');
console.log('- prime(string?): 获取语义网络的 Mermaid mindmap(可选加载指定网络)');
console.log('\n所有接口都使用简单的参数,prime 直接返回可视化结果!');
}
// 运行演示
runDemo().catch(console.error);