用 DAG 编辑器和函数实现逻辑复用
BotShade 的自定义命令构建器基于可视化节点编辑器,提供约 60 种节点类型,配合"函数定义""函数调用""返回值"三个节点即可定义带参数的子例程,并支持递归调用(深度上限 32 层,单次执行最多 1000 次调用)。BotGhost 的块状编辑器虽有循环与条件分支,但文档中没有提及带参数的可复用函数概念。
带类型的持久变量与原子 RMW
BotShade 的持久化变量支持 string、number、boolean、object、array、url、money、time,以及 Discord typed reference(user/role/channel/guild),可处理 array<object> 等最多 5 层嵌套。数式更新节点借助行级锁定防止丢失更新。BotGhost 提供 Text、Number、Collection、Object 四种类型与 Global、Server、Channel、User 四种作用域,Free 套餐限制为 500 calls/月。
把 AI 当作一等公民对待
BotShade 的 AI 命令构建器采用「预览 → 应用」的命令构建计划模型,可从自然语言生成节点,并支持 diff 审核。BotGhost 的 AI 模块仅限 ChatGPT / DALL-E,需要 Premium 套餐和用户自带的 OpenAI API key,其官方文档中没有对 Claude 或其他 LLM 的支持说明。
条件、循环与错误处理的结构化
BotShade 的条件分支节点(条件比较、概率、频道、身份组、用户、权限、正则等)会自动生成并锁定「否则分支 / 条件后处理 / If 分支」等子节点及必需的连线,同时也能处理「循环 + 循环体 + 循环后处理」以及「中断、继续、等待」。错误处理子树可读取 {Error.message} 这样的变量表达式,函数内部的循环检测仅以警告形式提示,因此允许递归调用。
Components V2 与变量补全
BotShade 在 Discord Components V2(Section、Container、MediaGallery、File、Separator)的消息构建器之上,叠加了在输入过程中补全 {User.name}、{target.mention}、${ {price}*1.1 } 等表达式的变量式自动补全。Components V2 本身 BotGhost 也已支持,BotShade 的差异点在于其上层的变量表达式行内补全。
日志诊断与 provenance
BotShade 以每个操作为单位流式输出结构化日志(例如自定义命令中变量写入被拦截的事件),并在变量目录上标注来源(用户 / 配置声明 / Marketplace)的来源标记,防止 Marketplace 来源的变量被劫持。BotGhost 的日志查看以 Premium 限定的实时 Bot 告警(Priority Hosting)为主。