资讯动态

Ekko Agent 集成 Apple Reminders:基于 remindctl 的 macOS 提醒事项技能全解析

发布时间:2026/9/23 18:13:13 来源:尧图企业网站定制
Ekko Agent 集成 Apple Reminders基于 remindctl 的 macOS 提醒事项技能全解析【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址: https://gitcode.com/gh_mirrors/he/ekko-studio导读本文介绍 Ekko AgentEkko Studio 的本地优先 AI 工作区核心 Agent中内置的apple-reminders技能它通过 macOS 命令行工具remindctl让 Agent 能够读取、创建、编辑、完成和删除 Apple 提醒事项Reminders.app及其列表并将数据通过用户 Apple 账户同步。读完本文你将掌握该技能的前置依赖与授权流程、全部命令的用法与参数、日期格式约定以及 Agent 在操作私人数据时必须遵守的确认与最小化原则文章同时结合仓库源码说明该技能如何被 Ekko Agent 发现、校验与注入运行时。技能定位Ekko 内置技能中的 macOS 专属能力apple-reminders是 Ekko Agent 随包发布的内置技能built-in skill之一技能定义文件位于 packages/ekko-agent/skills/apple-reminders/SKILL.md。它的 frontmatter 如下--- name: apple-reminders description: List, create, edit, complete, or delete Apple Reminders and reminder lists on macOS with remindctl. metadata: keywords: - apple reminders - reminders.app - remindctl ---从 frontmatter 可以看出该技能的设计目标是当用户想要的任务需要存储进 Apple Reminders 并通过 Apple 账户同步时Agent 应调用remindctl来操作而不是假装能在当前宿主应用里调度聊天消息或 Agent 任务。它属于 Ekko Agent 内置技能集中 macOS 生态的一员。仓库中的内置技能目录 packages/ekko-agent/skills 下还包含apple-notes通过memoCLI 操作 Apple Notes、obsidian、tmux、weather等同类能力它们共享同一套技能发现与加载机制。前置条件remindctl 与 macOS 授权技能正式可用前Agent 必须确认依赖存在command -v remindctl remindctl statusremindctl是一个独立的第三方 CLI来自 steipete/remindctl 项目并非本仓库自带二进制。若命令不存在技能要求 Agent向用户说明该依赖并让用户自行决定是否安装不得静默安装。remindctl status用于检查当前环境与授权状态确保后续命令可正常执行。除此之外macOS 还可能需要用户授予提醒事项访问权限remindctl authorizeauthorize会触发一次可见的 macOS 权限弹窗属于用户可感知的系统级授权决策必须由用户亲自批准或拒绝Agent 不应绕过。查看提醒事项多时间窗口与多种输出格式技能提供了按时间维度筛选的完整查看命令族remindctl # 查看全部默认视图 remindctl today # 今日 remindctl tomorrow # 明日 remindctl week # 本周 remindctl overdue # 已逾期 remindctl all # 全部 remindctl 2026-01-04 # 指定日期同时支持三种输出格式控制remindctl today --json # JSON 输出便于结构化处理 remindctl today --plain # 纯文本输出 remindctl today --quiet # 安静模式精简输出技能明确要求处理时优先使用 JSON 输出因为 Agent 可以对其做结构化解析与后续加工同时强调把返回的个人数据限制在请求所需的最小范围内——提醒事项属于高敏感个人数据不应无谓地把整库数据塞进上下文。管理列表查看、创建与删除Apple Reminders 以列表list为组织单元技能支持以下操作remindctl list # 列出所有列表 remindctl list Work # 查看名为 Work 的列表 remindctl list Projects --create # 创建名为 Projects 的新列表 remindctl list Work --delete # 删除名为 Work 的列表创建与删除列表都会实际修改用户的 Reminders 资料库因此技能要求操作前必须核实确切的列表名称避免拼写差异导致误建/误删删除列表前必须与用户确认除非用户在指令中已经明确指定要删除该列表。创建提醒标题、列表、截止时间与时区创建提醒是技能的核心场景支持简单与完整两种形式remindctl add Buy milk # 最简仅标题 remindctl add --title Call mom --list Personal --due tomorrow remindctl add --title Meeting prep --due 2026-02-15 09:00技能对创建环节的约束非常严格相对日期按用户本地时区解析例如tomorrow对应本地时区的明天创建前必须确保标题、目标列表、截止日期与时间、时区没有歧义不要为用户发明截止时间如果用户只给了日期如2 月 15 日而没有指定具体时间不得擅自补一个时刻如 09:00写入。完成与删除可变的写操作需要显式确认remindctl complete 1 2 3 # 按 ID 批量完成多个提醒 remindctl delete 4A83 --force # 强制删除指定 ID 的提醒技能要求执行前先通过列表查询把每个 ID 解析到对应的标题与所属列表确保目标明确完成complete与删除delete都是修改用户数据的操作只有在用户明确提出时才可执行强制删除--force前如果精确目标在用户指令中并未完全显式必须立即向用户确认。日期格式约定--due与日期过滤器的输入规范--due参数以及today/tomorrow等日期过滤器接受以下格式格式示例说明相对词today、tomorrow、yesterday按本地时区解析纯日期YYYY-MM-DD如2026-01-04日期过滤、日期级截止日期时间YYYY-MM-DD HH:mm如2026-02-15 09:00精确到分钟的截止时间ISO 8601 时间戳标准 ISO 8601 字符串带时区信息的精确时刻技能同时要求在最终回复中使用绝对日期当相对日期如明天可能被用户误解时要给出绝对日期如2026-09-24避免歧义。隐私与边界Agent 操作个人数据的行为准则该技能在命令之外还沉淀了一套 Agent 行为准则属于技能指令中与命令同等重要的部分目的判定当提醒我可能既指 Apple Reminder、又指宿主应用内通知时若上下文无法判断必须询问用户希望写入哪个目的地不得声称该技能能调度聊天消息或 Agent 任务。最小化数据查看命令返回的个人数据仅限请求所需避免无关私密内容进入上下文或回复。显式授权依赖缺失时解释原因并交由用户决定是否安装权限弹窗由用户亲自处理。变更加确认创建/删除列表、完成/删除提醒等一切修改库的操作只在用户请求时执行删除类操作保持先解析目标、再显式确认的双保险。仓库源码佐证该技能在 Ekko Agent 中的加载与校验从源码结构看apple-reminders的技能定义遵循 Ekko Agent 统一的技能契约技能元数据结构定义在 packages/ekko-agent/src/skills/types.tsAgentSkill接口包含id、name、description、instructions与可选的tools字段SKILL.md 中的 frontmatter 与正文即映射为该接口的元数据与指令内容。技能目录管理与初始化位于 packages/ekko-agent/src/directories.ts其中skillsDirectory指向rootDirectory/skills内置技能会被安装到每个 profile 的技能目录如profileSkillsDirectory(default)。技能发现、查看与管理的工具实现在 packages/ekko-agent/src/tools/skills.ts包括SkillListTool按名称/关键字检索、SkillViewTool读取具体技能的完整指令、skill_manage创建/编辑/补丁/删除/读写支持文件其中还定义了内置技能清单文件.ekko-builtin-skills.json、技能名称合法模式与valid | needs_metadata | invalid校验状态。运行时注入方面packages/ekko-agent/src/runtime/system-prompt.ts 在启用技能发现时会向系统提示注入可用技能名称列表并指示模型当用户请求意图与某个技能名匹配时先用skill_view读取该技能的精确名称指令再按指令执行apple-reminders的关键字apple reminders、reminders.app、remindctl正是在这一发现机制中帮助模型命中该技能的依据。仓库测试 tests/ekko-agent/builtin-skills.test.ts 对内置技能集合做了完整校验其中明确断言apple-reminders属于随包发布的技能之一并验证了每一项内置技能的 frontmatter 必须包含metadata.keywords18 个 ASCII 关键字、且会被安装到每个 profile 的技能目录确保该技能在运行时确实可被发现、可被skill_view加载。实操小结一次典型的提醒创建对话综合技能指令与运行机制一次典型的用法是用户在 Ekko Studio 对话中说出帮我明天上午 9 点提醒我打电话给妈妈放到个人列表里。Agent 的完整处理路径为依据系统提示注入的技能名称与关键字命中apple-reminders调用skill_view加载 SKILL.md 指令执行command -v remindctl remindctl status确认依赖与授权状态必要时请用户执行remindctl authorize若有歧义如提醒也可指应用内通知先询问目的地此处明确是 Apple Reminder无需询问将明天上午 9 点按用户本地时区解析为绝对时间执行remindctl add --title Call mom --list Personal --due YYYY-MM-DD 09:00回复中给出绝对日期的确认信息并向用户说明该提醒已进入 Reminders.app 并经 Apple 账户同步。整套流程既覆盖了remindctl的全部命令面也体现了该技能功能完整、数据最小化、写操作显式确认的设计哲学可作为 Ekko Agent 在 macOS 个人数据场景下的参考范式。【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址: https://gitcode.com/gh_mirrors/he/ekko-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价