youling-agent-mcp
Version:
MCP服务器实现POMDP研发任务拆解
70 lines • 2.32 kB
JavaScript
/**
* MCP客户端测试代码
* 用于测试POMDP任务拆解服务器
*/
import axios from 'axios';
import dotenv from 'dotenv';
// 加载环境变量
dotenv.config();
const SERVER_URL = 'http://localhost:3000/mcp';
const RESOURCE_TYPE = 'pomdp-task-decomposer';
/**
* 发送任务拆解请求
* @param taskDescription 任务描述
* @returns 拆解结果
*/
async function sendTaskDecompositionRequest(taskDescription) {
try {
console.log('发送任务拆解请求...');
// 步骤1: 初始化请求
const initResponse = await axios.post(`${SERVER_URL}/initiate`, {
resourceType: RESOURCE_TYPE,
question: taskDescription
});
console.log('初始化响应:', initResponse.data);
if (initResponse.data.status !== 'accepted') {
throw new Error(`初始化请求失败: ${JSON.stringify(initResponse.data)}`);
}
// 步骤2: 获取资源
const resourceResponse = await axios.post(`${SERVER_URL}/resource`, {
resourceType: RESOURCE_TYPE,
question: taskDescription
});
console.log('资源响应状态:', resourceResponse.data.status);
if (resourceResponse.data.status !== 'success') {
throw new Error(`获取资源失败: ${JSON.stringify(resourceResponse.data)}`);
}
return resourceResponse.data.content;
}
catch (error) {
console.error('请求过程中发生错误:', error);
throw error;
}
}
/**
* 主函数
*/
async function main() {
try {
// 测试任务描述
const taskDescription = `
开发一个智能客服系统,需要支持以下功能:
1. 能够理解和回答用户的常见问题
2. 支持多种语言
3. 具备对话上下文保持能力
4. 能够在必要时将用户转接给人工客服
5. 提供使用情况分析报告
`;
console.log('测试任务描述:\n', taskDescription);
// 发送请求
const result = await sendTaskDecompositionRequest(taskDescription);
console.log('\n==== 任务拆解结果 ====\n');
console.log(result);
}
catch (error) {
console.error('测试失败:', error);
}
}
// 执行主函数
main();
//# sourceMappingURL=test-client.js.map