核心用法
OfficeClaw 是一款面向个人 Microsoft 账户(Outlook.com/Hotmail/Live)的 Graph API 集成工具,为 OpenClaw 等 AI Agent 框架提供邮件、日历、任务三大核心能力的 CLI 接口。
认证流程:采用 OAuth 2.0 Device Code 流,无需客户端密钥。用户可沿用内置默认应用注册(零配置)或自建 Azure 应用(推荐生产环境),通过 officeclaw auth login 完成一次性登录,令牌以 600 权限存储于 ~/.officeclaw/token_cache.json。
功能覆盖:
- 邮件:列表/搜索/获取、发送(含附件)、归档、标记已读
- 日历:查询事件、创建/更新/删除预约、地点管理
- 任务:Microsoft To Do 列表管理、任务增删改查与完成状态切换
输出支持 --json 结构化格式,便于 Agent 程序化解析。
显著优点
1. 默认安全姿态:写操作(发送、删除)默认禁用,需显式开启;v1.0.4 引入的收件人白名单(OFFICECLAW_ALLOWED_RECIPIENTS)提供代码级硬边界,即使 Agent 被恶意诱导也无法向未授权地址发信。
2. 最小权限原则:API 权限完全由用户自选,读-only 场景可拒绝 Mail.Send/Calendars.ReadWrite 等高敏感 scope。
3. 无共享凭据:每个用户独立创建 Azure 应用注册,无集中式密钥泄露风险。
4. 透明可审计:阻止的发送尝试记录至 email-blocked.log 并生成 email-alert.json,便于安全监控。
潜在缺点与局限性
- 个人账户限定:不支持 Microsoft 365 商业/企业账户(租户场景)。
- 任务 API 粒度缺陷:Microsoft To Do 无只读权限,任务操作强制需要
Tasks.ReadWrite。 - 网络依赖:需稳定访问
graph.microsoft.com,企业代理环境可能需额外配置。 - OAuth 令牌生命周期:Device Code 流令牌过期后需重新登录,暂无自动刷新机制说明。
适合人群
- 希望为 AI Agent 赋予 Outlook 个人账户管理能力的开发者与技术用户
- 对数据主权敏感、不愿使用第三方托管邮件服务的隐私意识用户
- 需要细粒度控制 Agent 邮件外发行为的场景(如自动化报告分发系统)
常规风险
| 风险类别 | 说明 | 缓解措施 |
|---------|------|---------|
| 误操作群发 | Agent 逻辑错误导致邮件误发 | 启用 `OFFICECLAW_ALLOWED_RECIPIENTS` 白名单 |
| 令牌泄露 | 本地令牌文件被窃取 | 600 文件权限 + 系统级全盘加密 |
| 权限过度授予 | 用户配置时选择过高权限 | 遵循 README 的「Least privilege」指引 |
| 供应链攻击 | PyPI 包被篡改 | 校验签名、使用锁定依赖版本 |
总体评估
OfficeClaw 在同类工具中展现出高于平均水平的安全设计意识:默认禁用写操作、白名单硬边界、独立应用注册模式、最小权限指引,均体现了防御性编程思维。适合作为个人自动化工作流的基础设施,但企业级部署需评估个人账户策略合规性。