Syndroo文档
网站GitHub概览

与智能体配合使用

Syndroo 不包含语言模型,也没有自然语言处理步骤。可在本地终端执行命令的 Agent 可以检查前置条件、安装 0.7.0、读取包内 Skill,并询问你要使用本地还是自托管 Server 工作流。设置完成后,协议才是契约,终端里的文字只提供便利。

交给 Agent 设置

将以下提示词粘贴给可在本地终端执行命令的 Agent。提示词包含安装命令,通过 npm root --global 查找包内 Skill,并说明 Server 选择和授权边界。

你是一名可在本地终端执行命令的智能体。请为我设置 Syndroo 0.7.0。

1. 检查 Node.js 24.19.0 或更新版本以及 npm;确认我的平台是 macOS 或 Linux,以获得受支持的本地写入能力。
2. 使用以下命令安装 Syndroo 及其官方平台插件:
   npm install --global @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected]
3. 运行 `syndroo --version`。先用 `npm root --global` 获取 npm 全局根目录,再读取 `<global-root>/@syndroo/cli/skills/syndroo/SKILL.md` 并遵循包内 Skill。不要运行或编造单独的 Skill 安装命令。
4. 询问我要使用本地工作流还是自托管 Server 工作流,然后按我的选择继续。
5. 对于 Server 设置,询问我是否需要 GitHub。只有在我明确授权时才创建或推送仓库。复用我已经给出的授权。
6. 不要让机密出现在提示词、命令参数、日志或受版本跟踪的文件中。只有已获授权的内容和目标才能发布。

进行 Server 设置时,Agent 会先询问是否需要 GitHub,然后才创建或推送仓库。它会复用你已经给出的授权,并在某项操作仍需要你处理时停下。提示词不会让所有 Agent 客户端自动激活 Skill;Agent 必须读取并遵循已安装文件。

始终请求 JSON

--json 是全局参数,因此放在命令前后都可以。成功时,信封包含操作名称和结果;失败时,信封包含稳定的代码和一条固定消息,后者绝不根据堆栈、路径或参数生成。

{
  "protocolVersion": 1,
  "operation": "publish",
  "ok": true,
  "result": { "status": "confirmation_required" },
  "error": null
}

失败时使用相同信封:ok 为 false,result 为 null,error 对象包含 code 和 message。请根据 code 分支,不要解析消息文本。

把退出码作为一类信号理解

0 表示调用已按文档处理完毕,这仍可能是等待授权或等待确认的预览。退出码 4 表示写入可能已到达提供商,但无法确定结果。退出码 6 表示执行已经结束,并且确认没有完全成功。其他值涵盖用法或预检拒绝、用户明确拒绝、内部故障和进程中断;CLI 参考列出了全部七个值。

两个阶段,令牌留在标准输入

先准备,再执行。准备结果包含冻结的预览和一个一次性 approvalToken,执行请求只能从标准输入读取:

syndroo publish --input post.json --json > prepared.json
syndroo publish --input - --json < execute.json

从文件路径或 --data 传入的执行请求会被拒绝,因此有效令牌不会出现在后台调用的进程参数中。两个阶段之间不会发送任何内容:内容在准备时已经冻结,第二阶段无法重新读取原始输入。

已经获得某次发布授权的智能体可以在一次调用内完成两个阶段:syndroo publish --input post.json --yes --json 会准备、自动确认并执行;标准输出恰好是一个最终执行信封或错误信封,不会再输出准备结果或审批令牌。只使用 --json 而不使用 --yes 时,唯一信封就是准备结果。--yes 不会重新签发凭证,也不会绕过身份、过期、提供商验证或幂等规则,更不会进行第二次准备。

为每个逻辑调用提供稳定标识

--request-id 用于命名一个逻辑意图。用相同 ID 重复相同调用时,会返回已记录的结果,而不会再次发送;用相同 ID 传入不同内容时,会被拒绝,而不会静默覆盖先前记录。连接流程也内置同样的保证:重复的连接请求会重放已存储的步骤。

绝不要把凭证放进请求文档

凭证通过 SYNDROO_CREDENTIALS 或私有文件传递,绝不能放入发布文档或 --data。如果内容不能出现在进程参数中,请用 --input - 从标准输入读取请求,而不要内联传入。

CLI 包内的 Skill

安装后的 CLI 包包含 @syndroo/cli/skills/syndroo/SKILL.md。通过 npm root --global 解析包位置,再读取 <global-root>/@syndroo/cli/skills/syndroo/SKILL.md 并遵循它。不要编造单独的 Skill 安装或激活命令。是否自动发现仍取决于 Agent 客户端。

部署服务器

如果需要使用自己拥有的 Cloudflare Worker、部署 Threads OAuth 或配置手动 GitHub CI,请按照部署服务器操作。创建 GitHub 仓库和推送均为可选操作。复用已有授权,只在 Wrangler 登录或 Meta 浏览器授权等操作仍需要用户时停下。

server init 使用 0.7.0 版本的 @syndroo/cli 和 @syndroo/cloudflare 包,并安装项目本地 Wrangler。本项目尚未完成 Cloudflare、GitHub、Meta 或 Threads 验收;限制见CLI 参考。

确认不等于用户授权

确认提示是本地保护措施,不是授权凭据。在没有人在场时运行的智能体,必须自行判断本次发布是否本来就获准。CLI 只保证:在准备阶段为这份确切内容和这些确切目标签发令牌之前,不会发送任何内容。