核心用法
Tandoor CLI Skill 为 AI 代理提供通过 tandoor-cli 命令行工具与 Tandoor Recipe Manager 实例交互的能力。支持完整的食谱生命周期管理:查询(list/search/get/random)、创建(add/import)、更新(update/image)及删除(delete)。同时涵盖膳食计划(mealplan)、购物清单(shopping)、食材管理(food)和烹饪日志(cooklog)四大模块。
工具采用分级权限设计:读取操作(如列表、搜索)无需确认即可执行;写入操作(如添加食谱、导入 URL)需用户明确批准;破坏性操作(删除、清空购物清单)及批量操作要求双重确认;管理操作(家庭创建、用户分配、邀请链接)需管理员/空间所有者令牌 + 显式授权。
配置支持三级优先级:环境变量(TANDOOR_URL、TANDOOR_API_TOKEN)> ~/.config/tandoor-cli/config.json > 工作目录 .env 文件。推荐运行 tandoor configure 交互式完成初始设置。
显著优点
1. 功能全面:覆盖食谱管理、膳食规划、购物清单、烹饪追踪、多家庭组织等核心场景,单工具替代多个零散脚本。
2. 权限粒度精细:通过操作分级(读/写/删/管理)和令牌最小权限原则,降低误操作风险。
3. 供应链透明:开源 MIT 许可,代码仓库与 npm 包可公开审计,支持版本锁定避免供应链攻击。
4. 自动化友好:所有读取命令支持 --json 输出,便于代理管道处理和下游集成。
5. 多配置来源:灵活支持环境变量、配置文件、.env 文件,适配 CI/CD 与本地开发多种场景。
潜在缺点与局限性
1. 依赖外部服务:必须自建或托管 Tandoor Recipe Manager 实例,无法独立运行。
2. 令牌管理复杂:家庭邀请创建需空间所有者令牌(非普通管理员可用),权限错误返回 403 易混淆。
3. 无内置备份机制:删除操作不可逆,需用户自行建立数据备份策略。
4. 版本锁定要求:技能与 CLI 版本需严格匹配,否则可能出现命令行为差异。
5. JSON 构造门槛:创建食谱需构造符合特定 Schema 的 JSON,对非技术用户不够直观。
适合人群
- 自托管 Tandoor 用户:希望用命令行批量管理食谱、自动化膳食规划的技术用户。
- 家庭厨房管理员:需要协调多家庭成员、管理购物清单和食材库存的组织者。
- AI 工作流集成者:希望将食谱数据接入自动化流程(如根据购物清单生成采购任务)的开发者。
- 烹饪数据分析师:利用
cooklog追踪烹饪频率、评分统计,优化家庭饮食结构。
常规风险
| 风险类别 | 描述 | 缓解措施 |
|---------|------|---------|
| **令牌泄露** | API Token 长期有效,泄露后可完全控制实例 | 使用短期令牌、定期轮换、存储于安全密钥管理器 |
| **误删除数据** | `delete --force` 和 `clear` 操作不可逆 | 启用确认流程、操作前备份数据库 |
| **权限提升滥用** | 使用空间所有者令牌执行非必要管理操作 | 遵循最小权限原则,按需申请令牌作用域 |
| **供应链污染** | npm 包被恶意篡改 | 固定版本号、验证仓库签名、审查 `package.json` 依赖 |
| **数据一致性** | 批量操作(`shopping check --all`)影响全局状态 | 操作前展示影响范围、要求显式确认 |
建议:生产环境启用 Tandoor 的数据库定期备份,并为 CLI 配置只读令牌作为默认模式,仅在必要时切换至高权限令牌。