yijing_advise
Get I Ching-based decision advice for your specific questions by analyzing hexagrams, considering time frames, and evaluating optional action plans.
Instructions
基于卦象提供决策建议
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hexagram | Yes | 卦象数据 | |
| question | Yes | 用户的具体问题 | |
| options | No | 可选的行动方案(可选) | |
| time_frame | No | 决策的时间框架 |
Implementation Reference
- src/engines/yijing-engine.js:166-215 (handler)The core handler function for the 'yijing_advise' tool. It processes the hexagram data, analyzes action guidance, timing, options, and generates personalized advice based on Yijing principles.async provideAdvice({ hexagram, question, options = [], time_frame = 'short_term' }) { try { this.logger.info('开始提供决策建议', { question, time_frame }); const originalInfo = await this.hexagramDB.getHexagram(hexagram.original?.id || hexagram.id || 1); const changedInfo = hexagram.changed ? await this.hexagramDB.getHexagram(hexagram.changed?.id || 1) : null; // 确保changing_lines是数组 const changingLines = hexagram.changing_lines || []; // 分析卦象的行动指导 const actionGuidance = this.analyzeActionGuidance(originalInfo, changedInfo, changingLines); // 判断吉凶和时机 const timingAnalysis = this.analyzeTimingAndLuck(originalInfo, changedInfo, time_frame); // 针对选项进行分析 const optionAnalysis = (options && options.length > 0) ? this.analyzeOptions(options, originalInfo, changedInfo) : null; // 生成个性化建议 const personalizedAdvice = this.generatePersonalizedAdvice( question, actionGuidance, timingAnalysis, optionAnalysis ); const result = { timestamp: new Date().toISOString(), question: question, time_frame: time_frame, overall_guidance: actionGuidance, timing_analysis: timingAnalysis, option_analysis: optionAnalysis, recommendations: personalizedAdvice, cautions: this.generateCautions(originalInfo, changedInfo), follow_up_suggestions: this.generateFollowUpSuggestions(originalInfo, question) }; this.logger.info('决策建议生成成功'); return result; } catch (error) { this.logger.error('决策建议生成失败', { error: error.message }); throw error; } }
- src/utils/validator.js:130-136 (schema)Joi schema for validating input parameters of the 'yijing_advise' tool, used in validateToolInput.function createYijingAdviseSchema() { return Joi.object({ hexagram: Joi.object().required(), question: Joi.string().min(3).max(500).required(), time_frame: Joi.string().valid('immediate', 'short_term', 'medium_term', 'long_term').default('medium_term') }); }
- src/index.js:130-158 (registration)Tool registration in the ListToolsRequestSchema handler, including name, description, and input schema definition.{ name: 'yijing_advise', description: '基于卦象提供决策建议', inputSchema: { type: 'object', properties: { hexagram: { type: 'object', description: '卦象数据' }, question: { type: 'string', description: '用户的具体问题' }, options: { type: 'array', items: { type: 'string' }, description: '可选的行动方案(可选)' }, time_frame: { type: 'string', enum: ['immediate', 'short_term', 'long_term'], description: '决策的时间框架' } }, required: ['hexagram', 'question'] }
- src/index.js:410-412 (handler)Dispatch case in the main CallToolRequestSchema handler that routes 'yijing_advise' calls to the YijingEngine's provideAdvice method.case 'yijing_advise': result = await yijingEngine.provideAdvice(args); break;