Skip to main content
Glama
collaboration-demo.js7.21 kB
#!/usr/bin/env node /** * 协作引擎演示示例 * 展示多人格协作分析的完整流程 */ import { CollaborationEngine } from '../dist/collaboration-engine.js'; import { RemotePersonaRepository } from '../dist/persona-repository.js'; import { CollaborationMode } from '../dist/types.js'; // 演示用的本地人格数据 const demoPersonas = [ { id: 'fan_girl', name: '粉丝妹', rule: '你是粉丝妹,总是能发现别人的亮点和优势,善于鼓励和支持。你会从积极的角度分析问题,发现机会和潜力。', goal: '发现亮点,放大优势,提供正能量', version: '1.0', description: '积极乐观,善于发现优点和机会', category: 'supportive', tags: ['积极思维', '优势发现', '鼓励支持'], source: 'local' }, { id: 'product_strategist', name: '小布丁', rule: '你是产品策略专家小布丁,专注于商业分析和产品策略。你会从市场、用户、竞争等多个维度分析问题,提供实用的商业建议。', goal: '提供专业的商业分析和产品策略建议', version: '1.0', description: '专业的产品策略分析师,具备丰富的商业经验', category: 'business', tags: ['产品策略', '商业分析', '市场洞察'], source: 'local' } ]; async function demonstrateCollaboration() { console.log('🚀 协作引擎功能演示\n'); // 1. 创建人格仓库和协作引擎 console.log('📚 初始化协作环境...'); const repository = new RemotePersonaRepository(demoPersonas); const collaborationEngine = new CollaborationEngine(repository); console.log('✅ 协作引擎已创建'); // 2. 演示查询列表 const demoQueries = [ { query: '分析这个SaaS产品的商业模式:一个面向中小企业的项目管理工具,月付费模式,主要竞争对手是Notion和Trello', mode: CollaborationMode.PARALLEL, description: '商业模式分析 - 并行模式' }, { query: '我想创建一个AI写作助手产品,目标用户是内容创作者,请帮我分析可行性和潜在风险', mode: CollaborationMode.SEQUENTIAL, description: '产品可行性分析 - 顺序模式' }, { query: '如何提升团队的工作效率?我们是一个20人的技术团队,最近项目进度总是延期', mode: CollaborationMode.INTELLIGENT, description: '团队效率优化 - 智能模式' } ]; // 3. 逐一演示不同的协作模式 for (let i = 0; i < demoQueries.length; i++) { const demo = demoQueries[i]; console.log(`\n${'='.repeat(60)}`); console.log(`🎯 演示 ${i + 1}/${demoQueries.length}: ${demo.description}`); console.log(`${'='.repeat(60)}\n`); console.log(`📋 **分析问题**: ${demo.query}\n`); console.log(`⚙️ **协作模式**: ${demo.mode}\n`); try { console.log('🔄 启动协作分析...'); const startTime = Date.now(); // 启动协作分析 const result = await collaborationEngine.startCollaboration(demo.query, { mode: demo.mode, maxRounds: 2 // 演示用,减少轮次 }); const duration = Date.now() - startTime; console.log(`✅ 协作分析完成 (${Math.round(duration / 1000)}秒)\n`); // 展示结果 console.log('📊 **协作分析结果**:'); console.log(`- 会话ID: ${result.sessionId}`); console.log(`- 参与人格: ${result.selectedPersonas.join(', ')}`); console.log(`- 执行时间: ${Math.round(result.executionTime / 1000)}秒`); console.log(`- 分析条目: ${result.analyses.length}个\n`); // 展示个人分析摘要 console.log('🎭 **个人分析摘要**:'); result.analyses.forEach((analysis, index) => { const preview = analysis.analysis.substring(0, 100) + '...'; console.log(`${index + 1}. ${analysis.personaName}: ${preview}`); }); if (result.synthesis) { console.log(`\n💡 **核心洞察**: ${result.synthesis.summary}`); } if (result.actionPlan) { console.log(`\n📋 **行动建议**: ${result.actionPlan.steps.length}个步骤,优先级${result.actionPlan.priority}`); } } catch (error) { console.error(`❌ 协作分析失败: ${error.message}`); } // 演示间隔 if (i < demoQueries.length - 1) { console.log('\n⏳ 等待3秒后进行下一个演示...'); await new Promise(resolve => setTimeout(resolve, 3000)); } } // 4. 演示指定人格协作 console.log(`\n${'='.repeat(60)}`); console.log('🎯 演示 4/4: 指定人格协作'); console.log(`${'='.repeat(60)}\n`); try { console.log('🔄 启动指定人格协作分析...'); const specifiedResult = await collaborationEngine.startCollaboration( '评估我们公司是否应该采用远程办公模式', { personaIds: ['fan_girl', 'product_strategist'], // 只选择这两个人格 mode: CollaborationMode.PARALLEL } ); console.log('✅ 指定人格协作完成\n'); console.log('📊 **协作结果**:'); console.log(`- 指定人格: ${specifiedResult.selectedPersonas.join(', ')}`); console.log(`- 分析数量: ${specifiedResult.analyses.length}个`); } catch (error) { console.error(`❌ 指定人格协作失败: ${error.message}`); } // 5. 展示会话统计 console.log(`\n${'='.repeat(60)}`); console.log('📈 会话统计信息'); console.log(`${'='.repeat(60)}\n`); const activeSessions = collaborationEngine.getActiveSessions(); const sessionHistory = collaborationEngine.getSessionHistory(); console.log(`🔄 **活跃会话**: ${activeSessions.length}个`); console.log(`📚 **历史会话**: ${sessionHistory.length}个`); if (sessionHistory.length > 0) { console.log('\n📋 **最近会话历史**:'); sessionHistory.slice(0, 3).forEach((session, index) => { console.log(`${index + 1}. ${session.id} - ${session.status} (${session.selectedPersonas.join(', ')})`); }); } console.log('\n🎉 协作引擎演示完成!'); console.log('\n📖 **功能特性总结**:'); console.log('✅ 支持多种协作模式:并行、顺序、智能'); console.log('✅ 智能人格选择算法'); console.log('✅ 指定人格协作支持'); console.log('✅ 结构化分析结果'); console.log('✅ 会话管理和历史记录'); console.log('✅ 完整的错误处理机制'); console.log('\n💡 **使用建议**:'); console.log('1. 复杂问题使用智能模式,让系统自动选择最佳协作方式'); console.log('2. 需要快速结果时使用并行模式'); console.log('3. 需要深度讨论时使用顺序模式'); console.log('4. 针对特定领域问题可指定相关专业人格'); } // 错误处理包装 async function main() { try { await demonstrateCollaboration(); } catch (error) { console.error('❌ 演示过程中发生错误:', error.message); console.error('详细错误:', error); process.exit(1); } } // 如果直接运行此文件 if (import.meta.url === `file://${process.argv[1]}`) { main(); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/juyitingmcp/juyitingmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server