前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在开发智能体时,让 Agent 能够直接操作宿主系统是提升效率的关键。现有的部分日历插件(如 MAGMA27/dsh-calendar)通常只能通过 Web UI 进行调度,无法真正写入系统日历。dsh-macos-calendar 是一个宿主端插件,它通过 AppleScript 和 EventKit,为智能体提供了真正的 macOS 日历集成能力,支持创建、查询和删除真实系统日历事件。
核心功能¶
该插件在 DSH Web 宿主进程内运行,无需每次调用都进行会话审批。
- 列出所有日历名称 (
calendar_list):只读操作,返回当前系统中所有可用的日历列表。 - 创建事件 (
calendar_add):支持设置事件标题、起止时间(格式为YYYY-MM-DD HH:MM)、指定日历、备注以及提前多少分钟提醒。 - 查询未来事件 (
calendar_events):列出指定日历在未来 N 天内的所有事件。 - 删除事件 (
calendar_delete):根据事件摘要中的标题进行删除。使用from参数可以防止误删旧事件。
安装与启用¶
在安装前,请确保宿主环境满足以下条件:Node.js 版本 >= 22,且操作系统为 macOS。
- 将插件源码放置在本地路径
/path/to/dsh-macos-calendar。 - 执行安装命令:
dsh plugin --profile web add /path/to/dsh-macos-calendar
- 重启 DSH Web 进程。
- 授予自动化权限:在系统设置中授予宿主进程自动化权限。路径为:系统设置 → 隐私与安全性 → 自动化 → 允许
dsh host控制“日历”。
典型用法¶
在 DSH 会话中,智能体通过自然语言发起请求即可直接调用工具。例如:
“add a calendar event on 2026-10-11 at 10:00 AM for a meeting”
智能体会自动识别意图,调用 calendar_add 工具执行操作。
注意事项¶
- Cordis 4 依赖声明:该插件在 Cordis 4 环境下运行,要求消费的服务必须显式声明
inject依赖。支持两种声明形式,请保持两者以兼容不同的加载器读取方式:
// module export form
export const inject = ['tools'];
// function-property form
apply.inject = ['tools'];
- 日期字符串解析:AppleScript 日期字符串依赖系统区域设置,可能导致解析错误(例如 ISO 字符串被解析为年份 12194)。建议始终使用
date components构建日期,例如:
set d to current date
set year of d to 2026
set month of d to 10
set day of d to 11
set hours of d to 10
set minutes of d to 0
总结¶
该插件解决了智能体与宿主系统深度集成的痛点,让日程管理自动化。插件源码与详细文档可查阅:GitHub。