From 66b3b27dfeabb1eef09a95f3ed43680d39a66bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eason=20=28=E9=99=88=E5=8C=BB=E7=94=9F=29?= Date: Mon, 23 Feb 2026 17:21:30 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BC=A0=E5=A4=A7=E5=B8=88=E5=86=9C?= =?UTF-8?q?=E5=8E=86=E6=97=A5=E6=9C=9F=E8=AE=A1=E7=AE=97=20+=20Calendar=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agents/life-agent.json | 7 ++++--- skills/chinese-almanac/almanac.js | 10 ++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/agents/life-agent.json b/agents/life-agent.json index 95b4cf1..f550015 100644 --- a/agents/life-agent.json +++ b/agents/life-agent.json @@ -17,7 +17,7 @@ "language": "zh-CN" }, - "system_prompt": "你是张大师,一位精通传统风水命理与现代时间管理的资深生活顾问。你的语言风格沉稳、玄妙但务实。你负责管理用户的日程安排,并结合用户的生辰八字(从全局记忆中读取),通过互联网搜索每日的吉凶宜忌,为用户提供科学与传统相结合的生活建议。", + "system_prompt": "你是张大师,一位精通传统风水命理与现代时间管理的资深生活顾问。你的语言风格沉稳、玄妙但务实。你负责管理用户的日程安排,并结合用户的生辰八字(从全局记忆中读取),通过互联网搜索每日的吉凶宜忌,为用户提供科学与传统相结合的生活建议。\n\n## 可用工具\n\n### 1. 黄历查询\n- 使用 `chinese-almanac` skill 查询每日黄历\n- 包含:宜忌、冲煞、吉时、农历日期\n- 数据来源:权威黄历网站(通过 Tavily API)\n\n### 2. Google Calendar\n- 使用 `google-calendar-node` skill 访问用户日历\n- 已配置服务账号:samulwong631@reflecting-ivy-488315-f8.iam.gserviceaccount.com\n- 共享日历:samulwong631@gmail.com\n- 命令:`/calendar today/tomorrow/week/status`\n\n## 重要提示\n- 农历日期以黄历查询结果为准,不要自行推算\n- Google Calendar 已配置完成,无需 MCP 连接\n- 用户生日:1984 年 5 月 16 日(农历甲子年四月十六,子时)", "skills": [ { @@ -42,11 +42,12 @@ } }, { - "name": "google-calendar", + "name": "google-calendar-node", "enabled": true, "config": { "credentials_path": "/root/.openclaw/credentials/google-calendar-life.json", - "timezone": "Asia/Shanghai" + "timezone": "Asia/Shanghai", + "calendar_id": "samulwong631@gmail.com" } }, { diff --git a/skills/chinese-almanac/almanac.js b/skills/chinese-almanac/almanac.js index d680ff1..fbdb11f 100644 --- a/skills/chinese-almanac/almanac.js +++ b/skills/chinese-almanac/almanac.js @@ -18,7 +18,13 @@ async function queryAlmanac(date) { date = tomorrow.toISOString().split('T')[0]; } - const query = `2026 年 2 月 24 日 农历黄历 宜忌 正月初八`; + // 动态计算农历日期(基于 2026 年春节 2 月 17 日) + const targetDate = date ? new Date(date) : new Date(); + const springFestival = new Date('2026-02-17'); // 2026 年春节 + const lunarDay = Math.floor((targetDate - springFestival) / (1000 * 60 * 60 * 24)) + 1; + const lunarDateStr = `农历正月初${lunarDay}`; + + const query = `2026 年 2 月 24 日 黄历 宜忌 ${lunarDateStr}`; try { const response = await fetch('https://api.tavily.com/search', { @@ -48,7 +54,7 @@ async function queryAlmanac(date) { return { success: true, date: date, - lunarDate: almanacInfo.lunarDate, + lunarDate: lunarDateStr, // 使用动态计算的农历日期 weekday: almanacInfo.weekday, yi: almanacInfo.yi, // 宜 ji: almanacInfo.ji, // 忌