hyperchat/test-discover-agents.mjs

74 lines
2.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* 测试WebAgentManager的Agent发现功能
*/
import { WebAgentManager } from './packages/core/dist/cli/webAgentManager.mjs';
console.log('🧪 测试 WebAgentManager Agent发现功能...\n');
async function testAgentDiscovery() {
const webManager = new WebAgentManager();
try {
console.log('🔍 测试1: 发现当前目录下的Agent');
const currentDirAgents = await webManager.discoverAgents();
console.log(`发现结果: ${currentDirAgents.length}个Agent\n`);
console.log('🔍 测试2: 发现当前目录下的Agent不包含全局');
const localOnlyAgents = await webManager.discoverAgents(undefined, {
includeGlobal: false
});
console.log(`本地发现结果: ${localOnlyAgents.length}个Agent\n`);
console.log('🔍 测试3: 发现指定路径下的Agent');
const testPath = './packages'; // 测试目录
const pathAgents = await webManager.discoverAgents(testPath);
console.log(`指定路径发现结果: ${pathAgents.length}个Agent\n`);
// 如果发现了Agent测试批量启动
if (currentDirAgents.length > 0) {
console.log('🚀 测试4: 批量启动发现的Agent禁用MCP和任务调度器');
try {
const startedAgents = await webManager.discoverAndStartAgents(undefined, {
includeGlobal: false, // 只启动本地Agent
enableMCP: false, // 禁用MCP避免复杂初始化
enableTaskScheduler: false, // 禁用任务调度器
maxAgents: 3, // 最多启动3个Agent
});
console.log(`✅ 成功启动${startedAgents.length}个Agent`);
// 显示启动的Agent信息
console.log('\n📋 已启动的Agent列表:');
const summaries = await webManager.getAgentSummaries();
summaries.forEach((summary, index) => {
console.log(` ${index + 1}. ${summary.config.name} (${summary.path})`);
console.log(` 聊天记录: ${summary.chatLogsCount}, MCP配置: ${summary.hasMCPConfig}, 任务: ${summary.tasksCount}`);
});
} catch (error) {
console.log(`❌ 批量启动失败: ${error.message}`);
}
} else {
console.log('⚠️ 没有发现可用的Agent跳过批量启动测试');
}
console.log('\n✅ Agent发现功能测试完成!');
} catch (error) {
console.error('❌ 测试过程中发生错误:', error);
} finally {
// 清理资源
try {
await webManager.destroy();
console.log('🧹 资源清理完成');
} catch (error) {
console.error('清理资源时出错:', error);
}
}
}
// 运行测试
testAgentDiscovery().catch(console.error);