inklate-setup 是 Inklate 技能集的连接初始化技能,作用是把智能体接入一个真实的 Inklate 工作区,并证明这条连接端到端可用。它本身不发布内容,只做认证、清点渠道、读取能力规则,并在用户批准的前提下同步本地上下文文件。
用途
- 验证智能体与 Inklate 平台之间的连接是否可用。
- 清点已连接渠道及其真实能力规则。
- 让工作区处于可供其他 Inklate 技能使用的状态。
传输方式
技能通过当前智能体可用的传输层驱动平台,两种方式操作一致:
- CLI(首选):inklate 命令,安装方式为 npm i -g inklate。标准输出为结构化 YAML(加 --json 输出 JSON),进度与提示走标准错误,退出码有明确含义:3 表示无凭据,4 表示有意拒绝且机器可读负载在标准输出,6 表示资源中途变化,7 表示被限流但可稍后重跑。无人值守运行时传 --no-input,让缺失参数直接报错而非弹出提示;传 --yes 表示沿用用户已在对话中给出的批准。
- MCP(回退):未安装 CLI 时使用 Inklate 的 MCP 工具。
下文以 MCP 操作名为主,括号内为对应的 CLI 形式;CLI 可用时优先执行 CLI 形式。
连接检查
第一步始终运行 inklate auth check(MCP:organizations_list)。若退出码为 3(CLI 已装但无凭据),按会话场景选择:
- 交互式:inklate auth login 走设备流,打印短代码与浏览器 URL,用户批准代码并选择组织,密钥自动落盘。
- 无头场景(CI、无人值守智能体):从环境变量 INKLATE_API_KEY=inklate_… 获取密钥,或使用 inklate auth set --token inklate_…,不涉及浏览器。持有多个工作区的智能体用 --profile <name> 区分。
若 CLI 与 Inklate 工具都不可用,应提示用户安装 npm i -g inklate(或在 https://inklate.com/skills/connect?ref=skills-inklate-setup 连接)并停止,不做任何变通。
若只返回一个组织,直接命名并继续;若返回多个,列出并询问使用哪一个,绝不猜测。之后整个会话记住该选择(CLI:传 --org <slug>)。
上下文
先找项目根目录的 social-context.md,再找 .agents/social-context.md。找到则读取,尤其是 ## Platforms 段,以便后续对比用户所说的发布平台与实际连接的渠道。不存在则跳过,初始化不依赖该文件。
工作流程
组织确定后,调用 channels_list(CLI:inklate channels list)。逐渠道记录:平台(LinkedIn、X、Instagram、Facebook、Mastodon、Threads、Bluesky、TikTok、YouTube,后五个处于平台审核中)、账号名或句柄、连接状态。
若 channels_list 为空,应明确说明:连接可用但尚未连接任何社交账号。可提议立即连接一个:inklate channels connect <provider> 在浏览器打开提供方授权并在终端选择目标(MCP:connections_create → 把 URL 交给用户 → 轮询 connections_get → connections_destinations → connections_select)。否则在给出回执后停止。
调用一次 capabilities(CLI:inklate capabilities),一次返回所有渠道的有效能力及所有提供方的清单,无需逐渠道调用。从中按已连接渠道读出日常关键规则:每条帖子与每个线程段落的字数限制;媒体规则(图片/视频数量、格式、媒体是否必需,如 Instagram 要求媒体);线程支持与链接处理;渠道标记为不可用、受限或过期的项。同一响应还列出有适配器但此处置未连接的提供方,即再连接一个可解锁的内容。
若某渠道报告连接断开或过期,应显著标出,忽视它会在后续发布时静默失败。重新连接同样是 inklate channels connect <provider>。只有在用户明确要移除渠道时才使用 inklate channels disconnect <id>(MCP:channels_disconnect),并先说明代价:指向该渠道的已排期帖子会回到草稿,但已发布历史保留。
在对话中汇总清单:每渠道一行,含平台、句柄、状态,以及用户最可能遇到的两三条能力规则(例如“X:280 字符,最多 4 张图,支持线程”)。
提供 social-context 同步。若存在 social-context.md,将其 ## Platforms 段与已连接渠道对比:Inklate 已连但文件缺失的,提议添加;文件有但未连接的,指出但不删除,用户可能日后再连。展示将添加的具体行,获得明确同意后再改。只做新增:绝不改写、重排或删除用户手写内容。若不存在 social-context.md,建议运行 social-context 技能,并提议届时用本次清单播种其 Platforms 段。
确认冒烟测试结论:传输可达,N 个渠道在线,M 个渠道需要关注。
结尾逐行说明工作区现已就绪的后续技能,仅限渠道确实健康的技能:posts-create 一次调用生成经验证的草稿,posts-publish 发布或排期,calendar-schedule 预约整套计划,posts-update 编辑或取消已排队内容,files-upload 先上传媒体,inbox-triage 处理互动,analytics-review 做复盘。
质量要求
认证检查/ organizations_list 失败时绝不继续,坏连接会让所有下游答案变成虚构。渠道状态严格按 API 原样报告,不把“过期”或“断开”淡化为“稍后刷新即可”。能力摘要必须来自实时 capabilities 响应,而非记忆中的平台常识,限制会变化。一次调用覆盖所有渠道,逐渠道调用是浪费而非周全。对 social-context.md 的编辑是新增且经用户逐行预先批准,存疑时展示差异并询问。存在多个组织时,后续每项陈述都注明所指组织。断开渠道是用户在得知排期帖子会回到草稿后的明确决定,绝非可自行执行的清理。除非用户要求连接或断开,本技能不改变 Inklate 本身,只读取、验证,并在批准下仅触碰本地 social-context.md。
回执
最后用真实响应填写表格,列为:组织、渠道、平台、状态、能力摘要(示例:Acme Inc / @acme / X / connected / 280 字符, 4 张图, 支持线程;Acme Inc / acme.co / Instagram / expired — reconnect / 每条帖子要求媒体)。表格下方说明所用组织、健康渠道数量、需重连的渠道,以及 social-context.md 是否已更新(附具体新增行)或未改动。