destiny_consult
Analyze destiny using traditional Chinese metaphysics by providing birth data and questions to receive personalized guidance on career, relationships, wealth, and health predictions.
Instructions
提供命理咨询服务
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_profile | Yes | 用户基本信息,包含八字或其他命理数据 | |
| question | Yes | 咨询问题 | |
| context | No | 历史咨询上下文(可选) | |
| consultation_type | Yes | 咨询类型 |
Implementation Reference
- src/engines/combined-engine.js:96-169 (handler)Core handler function that executes the destiny_consult tool logic, performing specialized analysis based on consultation_type and generating action plans and risk assessments.async provideDestinyConsultation({ bazi_chart, consultation_type, specific_question, context = {}, include_hexagram = false }) { try { this.logger.info('开始命运咨询', { consultation_type, specific_question }); // 生成针对性卦象(如果需要) let consultationHexagram = null; if (include_hexagram) { consultationHexagram = await this.yijingEngine.generateHexagram({ method: 'plum_blossom', question: specific_question, seed: specific_question + new Date().toISOString() }); } // 根据咨询类型进行专项分析 let specializedAnalysis; switch (consultation_type) { case 'life_direction': specializedAnalysis = await this.analyzeLifeDirection(bazi_chart, consultationHexagram, context); break; case 'career_decision': specializedAnalysis = await this.analyzeCareerDecision(bazi_chart, consultationHexagram, specific_question, context); break; case 'relationship_guidance': specializedAnalysis = await this.analyzeRelationshipGuidance(bazi_chart, consultationHexagram, context); break; case 'financial_planning': specializedAnalysis = await this.analyzeFinancialPlanning(bazi_chart, consultationHexagram, context); break; case 'health_wellness': specializedAnalysis = await this.analyzeHealthWellness(bazi_chart, consultationHexagram, context); break; case 'timing_decision': specializedAnalysis = await this.analyzeTimingDecision(bazi_chart, consultationHexagram, specific_question, context); break; default: specializedAnalysis = await this.analyzeGeneral(bazi_chart, consultationHexagram, specific_question, context); } // 生成行动计划 const actionPlan = await this.generateActionPlan( specializedAnalysis, consultation_type, specific_question, context ); // 风险评估 const riskAssessment = await this.assessRisks( specializedAnalysis, consultation_type, context ); const result = { timestamp: new Date().toISOString(), consultation_type: consultation_type, specific_question: specific_question, context: context, hexagram_used: consultationHexagram, specialized_analysis: specializedAnalysis, action_plan: actionPlan, risk_assessment: riskAssessment, follow_up_recommendations: this.generateFollowUpRecommendations(specializedAnalysis, consultation_type), consultation_summary: this.generateConsultationSummary(specializedAnalysis, actionPlan) }; this.logger.info('命运咨询完成'); return result; } catch (error) { this.logger.error('命运咨询失败', { error: error.message }); throw error; } }
- src/index.js:288-316 (registration)Tool registration in ListToolsRequestHandler, defining name, description, and input schema for destiny_consult.name: 'destiny_consult', description: '提供命理咨询服务', inputSchema: { type: 'object', properties: { user_profile: { type: 'object', description: '用户基本信息,包含八字或其他命理数据' }, question: { type: 'string', description: '咨询问题' }, context: { type: 'array', items: { type: 'object' }, description: '历史咨询上下文(可选)' }, consultation_type: { type: 'string', enum: ['guidance', 'analysis', 'prediction', 'suggestion'], description: '咨询类型' } }, required: ['user_profile', 'question', 'consultation_type'] } },
- src/index.js:448-450 (registration)Handler dispatch in CallToolRequestHandler switch statement for destiny_consult.case 'destiny_consult': result = await combinedEngine.provideConsultation(args); break;
- src/utils/validator.js:208-225 (schema)Joi schema definition for validating destiny_consult input parameters, used in validateToolInput.function createDestinyConsultSchema() { return Joi.object({ user_profile: Joi.object({ birth_time: Joi.alternatives().try( Joi.date().iso(), Joi.string().pattern(/^\d{4}-\d{2}-\d{2}(\s\d{2}:\d{2}(:\d{2})?)?$/) ).required(), gender: Joi.string().valid('male', 'female', '男', '女').required(), birth_location: Joi.object().optional(), bazi_chart: Joi.object().optional() }).required(), question: Joi.string().min(3).max(500).required(), context: Joi.array().items(Joi.string()).default([]), consultation_type: Joi.string().valid( 'guidance', 'analysis', 'prediction', 'suggestion' ).default('analysis') }); }
- src/utils/validation.js:267-279 (helper)Validation helper method for destiny_consult parameters in ValidationUtils class.validateDestinyConsult(params) { const schema = Joi.object({ birth_datetime: this.schemas.birthDateTime, gender: this.schemas.gender, consultation_type: this.schemas.consultationType, specific_question: Joi.string().max(500).messages({ 'string.max': '具体问题不能超过500个字符' }), timezone: this.schemas.timezone }); return this.validate(schema, params); }