CONTENT DISTRIBUTION OS · 海外 + 国内

海外与国内,
全平台内容
自动分发。

一份房源、一份主稿,自动整理成各平台自己的写法——审核、排期、发布、防重复,再把客户的私信和评论变成线索。人在外面,用飞书在手机上遥控整条流水线。

海外fFacebookigInstagram@ThreadsrReddittgTelegram
国内微公众号百百家号知知乎头头条书小红书博微博抖抖音
遥控飞飞书 · Claude Code · Codex
0条自动化流水线 + 手机遥控
0个对接平台
0个三语词库词条(海外线)
0项自动化测试(海外线)
00 · OVERVIEW

两条流水线,一个手机遥控器

同一套设计哲学,做了三个互相配合的系统:海外线把房源和攻略发到 Facebook / Instagram / Threads 并接住客户消息;国内线每天一份主稿,适配成公众号、百家号、知乎、头条、微博等平台各自的写法;飞书工作台让你在手机上下任务、看进度、点批准。

A

海外线

SAIGON HOUSE 内容分发中台

胡志明房源 / 攻略 → 中文 · English · Tiếng Việt 三语文案 → 审核 → 排期 → 发布,再把客户私信和评论变成线索。

FacebookInstagramThreadsRedditTelegram网站攻略页
  • 词库 + 模板生成三语文案,AI 碰不到数字
  • 六项评审把关攻略内容,不过关不自动发
  • 统一客户消息中心:识别意图、评分、转人工
进入海外线
B

国内线

content-publisher · 每日日更

每天 06:30 生成一份事实主稿,本地确定性适配成各平台的写法,串行发布;失败了自动补跑,成功的步骤不重跑。

公众号百家号知乎头条小红书微博抖音
  • 模型每天最多调用一次,走订阅额度而非 API 计费
  • 每个平台明确停在哪一步:草稿 / 预填 / 自动发布
  • 遇验证码、登录墙、改版立即停手,不绕过
进入国内线
C

飞书遥控

feishu · AI 工作台

在飞书里发一句话,本机去执行:生成公众号草稿、重试某个平台、让 Claude Code 写代码、让 Codex 做审核。

飞书机器人Claude CodeCodexHermes
  • 发布 / 部署 / 删除 / 付款一律停在人工批准
  • 失败可只重试一个平台,不重新生成内容
  • 全局单并发队列,状态和日志都可追溯
进入飞书遥控

先核对,再动手

海外线发帖前再读一次房源;国内线发布后到作品管理读回同一条记录。读不回就记“不确定”,绝不盲目重发。

默认关闭,默认留草稿

自动推广、获客引擎、自动回复默认关;公众号只存草稿、小红书只预填。要放行,必须显式打开开关。

遇到墙就停,不绕过

验证码、登录墙、页面改版、令牌失效——截图、通知、退出;没有任何绕过验证或刷量的代码路径。

AI 只在边界内工作

模型只产出结构化数据,最终稿由程序拼装;事实必须有来源,数字由程序计算;高风险话题转人工。

PART A · OVERSEAS

海外线 SAIGON HOUSE 内容分发中台

把胡志明的房源和攻略,按中文 / English / Tiếng Việt 整理成帖子,发到 Facebook、Instagram、Threads(以及 Reddit 社区运营),并接住客户的私信和评论,变成可跟进的线索。

A1 · PIPELINE

从房源到客户,一条自动化流水线

不是一堆零散脚本,而是把「写什么、怎么写、什么时候发、发出去之后怎样」串成闭环的系统。点击每个阶段,看它具体做了什么。

A2 · TRILINGUAL ENGINE

一套房,三种语言,文案由词库拼出来

房源只存标准字段,不存某种语言的句子。中文 / English / Tiếng Việt 由「词库 + 模板」直接生成:同样的数据永远得到同样的文字,价格和面积由程序格式化,AI 碰不到数字。下面是系统对一套示例房源生成的真实文案,切换语言和平台试试。

标准房源 · 只存事实

code
HCM-2031
type
apartment · rent
project
Masteri Thao Dien
district
thao_dien ← 词库 key
bedrooms
2 bathrooms 2 area 85
rent_vnd
25000000 lease 12
furnish
fully_furnished
view
river
features
pool · elevator · pet_ok
photos
8 张本套实拍 授权社交平台
21 类词库508 词条27 个渠道模板缺词不拿别的语言凑数

生成结果 · 实时预览

SH
SAIGON HOUSE刚刚 · 🌐
Facebook
字符数0
zh-CN · 程序格式化
2500万越南盾/月
85㎡ · 2房 · 2卫
EN · 程序格式化
25,000,000 VND/month
85 sqm · 2 Bedrooms
VI · 程序格式化
25 triệu VND/tháng
85 m² · 2 phòng ngủ

词库可校对、可追溯

每个词三种语言各一个说法;后台可改、可停用,每次修改有版本和修订记录;懂越南语的校对者用专用链接就能审,不用拿后台密码。

没有依据的推广话进不来

“全网最低价”“稳赚”“最后一套”不会出现在词库和模板里;人工写的文案里出现,后台会提醒。

AI 只做可选的“翻译官”

仅当网站上人写的描述缺某种语言时才翻译,不许改数字、电话、楼盘名,译文要过检查并缓存;不配 Key 也完整可用。

A3 · PUBLISHERS

一套内核,每个平台守自己的规矩

不是把同一段话复制三遍。每个平台有自己的文案结构、长度、图片规格和失败处理,但共用同一套任务表、调度器和防重复机制。

f

Facebook Page

Graph API · 长效 Page Token
  • 文字 / 单图 / 多图帖,多图只生成一条
  • 每个 Page 一种语言,文案与账号语言不符就不让发
  • 帖子带专用 ref:超时后先去 Page 上找,找到再补记
  • 授权失效只停这个账号,后续任务不再撞同一个错
  • 支持系统用户永久令牌连接 Page
定时发布最多 4 次尝试发布后读回校验
ig

Instagram

Facebook Login · 专业账号轮播
  • 自动生成 1080×1350(4:5)轮播,最多 10 张
  • 封面 → 本套实拍(横图保留,模糊底)→ 联系方式页
  • 容器流程:逐张建子容器 → 轮询 FINISHED → 发布;任何一张失败都不发半成品
  • 发布前读 content_publishing_limit,额度用完延后而非失败
  • 链接点不开,文案改为“私信我们”
≤ 2200 字5–12 个话题标签最多 6 次尝试
@

Threads

独立授权 · 60 天长效令牌自动续期
  • 文案单独写,不是 Instagram 的翻版:一句判断 + 数据 + 最多 3 条卖点
  • 500 字符上限(emoji 按字节算)与 ≤5 个链接,发布前检查,超了先砍卖点
  • Smart Mix:按比例轮发三种语言(默认 英 50 / 中 30 / 越 20)
  • 文字 / 单图 / 轮播 / 链接卡片四种形式
  • 到期前 14 天自动刷新令牌,刷不了才提醒重新授权
threads_publishing_limit数据删除回调
Telegram

收稿机器人、发布结果通知、管理员提醒、客户私信(Business)。

Reddit 社区运营

规则引擎 + 风险评分 + 审核;做社区运营而不是广告投放。

网站攻略页

公开攻略页,多语言互链、SEO 标签,按来源统计访问。

Zalo / WhatsApp

三语文案模板已就绪,一键复制;自动发布在规划中。

小红书

自动产出中文笔记草稿,人工复制发布。

A4 · AUTOPILOT

每天几个时间点,系统替你点“发布”

自动推广按评分挑房源、排好未来 36 小时;也可以把写好的文案和图片提前放进来,甚至直接发给 Telegram 机器人——到点自动发,发完把结果告诉你。

自动推广 · 评分选房源

默认关闭 · 默认要审核

每个账号每天固定几个时间点(胡志明时间)。先粗筛,再打分,再用和手动发布一样的检查逐个“细查”,过不了就换下一套。

10:00—
13:00—
17:00—
20:30—
HCM-2031
+30 新房源+20 实拍 8 张以上+5 刚确认还能租
55
HCM-2088
+15 降价 ≥3%+20 30 天未发+10 实拍 5 张以上
45
HCM-2045
+10 实拍 5 张以上+10 14 天未发+10 刚确认−15 同日同楼盘
25
  • 你取消过的任务不会被补回来;到点还没审核的会作废,不发没人看过的帖子
  • 同一账号同一时间点只会有一个自动任务(数据库唯一索引)
✈
SAIGON 收稿机器人
待发内容 · Telegram 收稿
@ 时间写法
  • 一次选多张图 = 一篇稿子,机器人按相册自动合并
  • 时间可写 @明天 09:00 @后天 7点半 @立即,看不懂不会瞎猜
  • 发布结果、失败原因(人话)和“重试”按钮都发回 Telegram
A5 · CONTENT ENGINE

攻略内容,让想租房的人先找到你

房源帖让「有房的人」看到;攻略让「想租房的人」先找到你。每天自动选题、研究、写稿、六项评审、按平台改写、排期发布,再把评论里的问题变成下一个选题。每篇都必须对读者有帮助,没有素材就少写,不拿空话凑数。

01选题评分→ 02读房源数据研究→ 03三语母内容→ 04六项评审→ 05各平台改写→ 06排期发布→ 07问题 / 线索↺ 08下一轮选题

六项评审 · 不过关不自动发

事实、人味、广告味、重复、有用、平台适配。虚线是达标线(广告味、重复为反向指标,已换算成越高越好)。

内容配比 · 90% 先解决问题

只有 10% 直接推房源

默认比例,可调。真实案例没有自动来源(必须来自真实成交),份额不会转给别的类别。

选题评分公式

来自用户问题 +0.15

分数越高越先写。表现好的选题以后排得更靠前——系统会从互动、访问、线索里“学习”。

  • 同一角度(类别 + 区域 + 预算档 + 户型)90 天内不重复;相似度超过 0.88 拦截,0.75–0.88 要换角度
  • 数据类选题按「预算 × 区域 × 户型」展开 84 个;人写的中英清单稿 45 篇(默认未批准)
  • 评论里的同一个问题 30 天出现 3 次,自动变成选题

AI 稿的事实边界

默认必须人工审核

库存只能核验价格、套数这类数据,核验不了合同、法律、押金、签证。所以 AI 不是想写什么就写什么:

  • 程序先把库存算成带编号的“事实目录”,AI 只能引用目录里的编号
  • 每个小节、每个要点必须列出依据编号;没写、查不到 → 进待审核
  • 出现合同 / 法律 / 押金 / 宠物 / 签证等说法,一律进待审核
  • 不编真实案例:案例必须手写、勾选已匿名化,并写明只留在后台的来源
  • 发布前再核验一次数据:快照超 48 小时、点名的房源已出租或价格变了 → 不放行

同一份母内容,每个平台写自己的版本

A6 · UNIFIED INBOX

客户私信进来,自动分析、建档、评分、提醒

Facebook Messenger、Instagram 私信、Telegram 的消息汇到同一个收件箱:识别语言和意图,能答的先问需求并推荐网站上的真实房源;押金、议价、合同、退款、法律、投诉一律转人工;高意向立刻提醒你。

演示开启自动回复 · 系统默认关闭
收件箱
K
Kevin T.—
AI
L
Linh N.Căn này còn trống không?
已回复
W
陈先生想看七郡的三房
待人工
D
David R.Thanks!
完成
Kevin T.Facebook MessengerenAI_PROCESSING
线索 · 实时评分
0LOW
需求—
区域—
预算—
户型—
入住—
电话—

Webhook 验签 + 去重

X-Hub-Signature-256 / Telegram secret 常量时间比较;同一条消息重发只会有一行;签名不对的请求被记录。

模型没有任何工具

AI 只返回结构化结果,查房源、改线索、转人工由程序执行;回复发出前再核对价格、电话、网址。评分也由程序按规则算,不信模型自己报的分。

评论转线索

帖子下有人问“多少钱?”→ 准备好私信回复草稿并提醒你,你点“发送”才会发;每条评论只能私信一次,结果不明不自动重发。

巡检、日报、24h 窗口

每天 10:00 / 18:00 巡检漏单,18:00 发日报;客户消息 30 分钟 / 6 小时没人回会提醒;支持 HUMAN_AGENT 标签延长人工回复期。

A7 · RELIABILITY

该发的发,不该发的绝不发

自动发帖最怕两件事:重复发、乱发。系统在建任务、领任务、发帖三个关口各设一道防线,再加上“发之前最后一次核对”。

GATE 01

建任务:幂等键

同一版文案在同一个账号,数据库层面只允许存在一个任务;重复提交、重复点击都建不出第二个。

facebook:{page}:{listing}:{lang}:{angle}:v{ver}
GATE 02

领任务:原子领取

一条原子 UPDATE 把到期任务改成 processing,两个进程不会执行同一个任务;崩溃留下的锁 10 分钟后自动接管。

UPDATE … SET status='processing' WHERE id=$1 AND status IN ('queued','retry_waiting') RETURNING *
GATE 03

发帖:先查再发

调用发帖接口前先记 stage=posting。超时 / 5xx / 进程崩溃后,下一次先去平台上找这条帖子,找到补记,找不到才续发同一个容器。

publishing_unknown → reconcile → resume same container

故障模拟器

点击一个场景

不同的失败,系统有不同的处理:该重试的重试,该停的停,不确定的先对账。

queued→ processing→ 复核网站→ posting→ published
retry deferred +1h publishing_unknown needs_reauth cancelled
job #2041 ▸ trace

发布前最后一次核对

任务真正发出前再读一次网站:已出租、已售、下架、太久没确认的,直接取消;网站连不上就不发、等重试。

默认全部关闭

自动推广、获客引擎、自动回复、Reddit 默认都是关的;部署上去不会自己开始发帖,开启后也默认要审核。

敏感话题必须人工

押金 / 议价 / 合同 / 退款 / 法律 / 赔偿 / 佣金 / 投诉 / 成交价 / 房东联系方式——10 类话题命中就转人工,AI 不插话。

密钥与隐私

令牌 AES-256-GCM 加密存库、不进日志;短链只存按天计数,不存 IP 和 UA;审核链接只存 SHA-256,可随时撤销。

什么时候不能发

发之前逐条检查
已出租 / 已预订 / 已售“还能租”超过 7 天没确认没有价格本套实拍少于 3 张网站没有设置官方联系方式账号暂停 / 令牌失效文案语言与账号语言不符同一套房 14 天内发过当天条数已到上限帖子里的链接是本机 / 内网地址
A8 · COVERAGE

海外线 平台 × 能力,当前状态一目了然

核心功能均已开发完成,并在模拟平台(含真实 PostgreSQL 16)上通过自动化测试。对外公开发布仍取决于各平台自己的应用审核与 API 批准——下表如实标出。

平台发布收消息 / 评论数据回收状态
Facebook Page文字 · 单图 · 多图Messenger 收件箱评论 → 私信草稿点赞 / 评论 / 分享 · 短链点击功能完成公开发布需 Meta 应用审核
Instagram4:5 轮播 ≤ 10 张私信收件箱评论 → 私信草稿点赞 / 评论 · 短链点击功能完成公开发布需 Meta 应用审核
Threads文字 · 单图 · 轮播 · 链接卡片—短链点击功能完成公开发布需 Meta 应用审核
Telegram收稿 · 结果通知 · 管理员提醒Business 客户消息—功能完成
网站攻略页公开攻略页 · 多语言 · SEO—访问按来源统计功能完成
Reddit社区内容 · 规则引擎 · 审核—帖子分数 / 评论(只读)等待 Data API 商业批准批准前不发起任何读取或发布
Zalo / WhatsApp三语文案模板(复制使用)——自动发布规划中
小红书笔记草稿(人工复制)——只出稿
PART B · DOMESTIC

国内线 每日日更,一份主稿发全平台

每天 06:30,只联网生成一份带来源的事实主稿;公众号、百家号、知乎、头条、小红书、微博的版本,都由本地程序从这份主稿确定性适配,不再各自调用模型。每个平台都明确停在哪一步。

B1 · MASTER → ADAPTERS

一份主稿,各平台各写各的

事实只在主稿里确定一次(带来源、结构化);平台版本只做重组与改写——同样的输入永远得到同样的输出。点击下面的平台,看它具体怎么做、停在哪一步。

事实主稿 · content_master.json

topic
读取当天日期对应的选题 config/topics.md
search
联网检索 1 次 → 来源包
model
codex exec · 1 次调用 · 订阅额度
schema
严格 JSON:开场 · 编号小节 · 案例 · 证据 · 引语 · 风险 · 清单 · 对比 · 结论 · 来源 · 免责
check
master_check 硬校验,含各平台字数上限

本地适配器 · 纯函数

  • 不读写文件、不联网、不调用模型,同样输入永远同样输出
  • 只重组主稿已有的事实、段落、清单和来源
  • 事实只收录能关联到 HTTPS 来源的证据 / 案例,无来源的判断不升格成“已核实”
只存草稿开关开启后自动发布预填,不保存不发布逐条策略
B2 · SCHEDULE & RESUME

每天自动跑,失败了自己补

由 launchd 定时触发。后一个阶段会自动补跑前面失败或没跑的步骤;已成功的步骤永不重跑(status.json 门控);一个平台失败,不会拖累后面的平台。

一天的时间表

胡志明时间 · launchd
06:30 日更:联网生成主稿 → 公众号 → 百家号 → 知乎 → 头条 → 微博(串行)
每 5 小时 00:30 / 05:30 / 10:30 / 15:30 / 20:30 · 知乎问答巡检与发布
周日 20:00 生成下周 7 天的选题,追加进选题队列

失败了怎么办

选一个场景

五个平台串行跑。看某个平台出问题时,其余平台和第二天的补跑会怎样。

daily ▸ run trace
B3 · QUALITY & BOUNDARIES

写得出来,更要拦得住

自动发布最怕“发了不该发的”。国内线把边界写死在代码里:模型怎么用、质检查什么、哪些动作根本没有实现路径。

结构化生成,程序拼成品

模型只产出符合 JSON Schema 的字段;文本先 HTML 转义,不许提供原始 HTML / CSS / 事件处理器 / 文件路径,品牌名与链接只由程序插入。

质检硬错误不进草稿

正文长度、标题 / 摘要 / 封面长度、来源与免责声明、引用占位符、Markdown 围栏、不安全 HTML、封面尺寸——不过关就停在打开编辑器之前。

订阅额度,不走 API 计费

通过已登录的 codex exec 调用;子进程强制删除 OPENAI_API_KEY,没有 API 回退。模型每天最多调用一次,失败只重试 1 次。

事实必须有来源

头条有独立的事实核实门禁,复用主稿来源包;缺来源、未通过核实、产物里缺核实结果的文章,一律不允许发布。

不实现的事

自动点赞、收藏、关注、评论、私信、刷量——没有实现路径。收入承诺、虚构订单 / 案例、假截图被禁止;“稳赚 / 躺赚 / 保证赚钱”被拦截。

防重复发布

结果不确定时写哨兵,连 --force 都绕不过;人工确认确实没发,才能用专门参数恢复。知乎问题 90 天、微博 / 头条主题 30 天不重复。

独立浏览器 Profile

发布专用 Chrome,与日常浏览器隔离;各平台各有独立 profile,登录态保存。日志写入前脱敏 Cookie / Token / 密码。

遇到墙就停手

验证码、登录墙、反爬、页面结构变化:截图 → 通知 → 退出,不乱点、不反复重试;通知走飞书,没配则落到 Telegram / 系统通知和本地日志。

半自动模式:自己写正文,工具只干机械活

想用真正的自定义 GPT 写正文、质量不打折?把正文放进 input/article.html,标题 / 封面 / 排版 / 存草稿交给工具。标题与封面文案三项都手填 = 零额度、完全不调模型。与全自动版并存、互不影响,安全边界一样:只存草稿,绝不群发。

npm run seminpm run semi-upload
PART C · REMOTE CONTROL

飞书遥控 在手机上管理整条流水线

在飞书里私聊机器人,发一句话就能创建任务、查看进度、重试失败的平台;发布、部署、删除、付款这类高风险动作,永远停在“等你批准”。

C1 · MOBILE WORKBENCH

发一句话,本机去执行

任务在你的 Mac 上排队执行,结果和状态回到飞书。切换下面的场景,看三种最常见的对话。

‹
Hermes · AI 工作台飞书私聊
在线

任务状态

本地任务队列

全局单并发;每个任务有 ID、状态、日志和产物目录,重启不丢。

pending→ running→ reviewing→ waiting_approval→ approved→ completed
blocked · 需人工failedcancelled

常用指令

斜杠 + 自然语言
/tasks今天的任务列表
/task <ID>查看某个任务
/retry <ID>重试(复用原产物)
重试百家号只重试百家号存草稿
重试公众号只重试公众号存草稿
重试小红书只重试小红书预填
发布百家号 <ID>明确的人工确认
/approve/cancel批准 / 取消

自然语言也行:公众号文章,主题是…… · 生成小红书:…… · 开发任务:…… · 查看今天任务

C2 · ROLES & GUARDRAILS

三个角色,一道安全阀

同一个飞书入口,背后是 Claude Code 写代码、Codex 做审核、Hermes 管日常任务。凭据与权限被隔离,危险动作不会被自动执行。

Claude 开发助手

Claude Code CLI · Claude Pro 登录态
  • 开发类任务生成可复制的任务包:tasks/<ID>-claude.md
  • 通过本地 wrapper 调用,不绕过 wrapper 直连真实 CLI
  • 启动前清除 Anthropic 的 Key / Token,只走订阅登录

Codex 检查助手

Codex CLI · ChatGPT 登录态
  • 审核结果落盘:reviews/<ID>-codex-review.md
  • Claude 的修复报告同样留档,写 → 审 → 修有迹可循
  • 调用前删除 OPENAI_API_KEY,没有按量计费回退

Hermes 轻量代理

飞书 WebSocket 长连接
  • 接收飞书消息,维护会话,查询任务状态、处理轻量自动化
  • 识别“公众号文章 / 生成小红书”等明确指令,直接驱动国内线
  • 普通闲聊不会误触发工作流

高风险一律等批准

含发布、部署、删除、生产、付款、下单意图的请求进入 waiting_approval;/approve 只记录批准,不会自动执行危险动作。

只重试出问题的那一环

登录失效或存草稿失败,会创建独立子任务,只复用原产物,不调用 GPT、不重新生成、不点发布;扫码窗口最长保留 30 分钟。

单并发 + 进程组取消

所有任务共用一个全局队列,避免浏览器互相抢;安全取消会终止整个进程组,连同 codex 和浏览器子进程一起停。

常驻运行

PM2 托管飞书桥与 Hermes,崩溃自动拉起;附第二台 Mac 的安装手册,可在另一台机器上复制同样的工作台。

D · ARCHITECTURE

三个系统,同一套工程习惯

任务有状态,步骤可重入,外部动作先核对。海外线把队列放进同一个 PostgreSQL,国内线用 status.json 台账门控每一步,飞书用本地任务队列——不引入多余的服务。

整体分层

示意
Control飞书机器人Telegram 收稿 / 提醒Web 管理后台审核链接
Source网站公开接口(只读)选题队列 / 问题库联网检索来源包评论 / 私信里的问题
Content三语引擎获客引擎事实主稿平台适配器封面 / 轮播渲染质检 / 评审
Core任务状态机调度器 / launchd重试 / 对账幂等键 / 哨兵PG 队列 / status.json
AdaptersGraph APIReddit OAuthPlaywright 浏览器自动化SSH 原子同步
PlatformsFacebookInstagramThreads公众号百家号知乎头条小红书微博抖音
海外线 · Node.js 24 + TypeScript原生运行 .ts;Fastify 5 服务端渲染后台
PostgreSQL 16数据 + 任务队列 + 幂等约束,重启不丢任务
sharp + opentype.js轮播图渲染;文字转矢量路径,不依赖服务器字体
AES-256-GCM平台令牌与密钥加密存库;Zod 校验外部数据
国内线 · Node.js + Playwright独立 Chrome profile 驱动各平台后台
codex execChatGPT 订阅额度生成主稿;JSON Schema 约束输出
launchd + status.json定时触发;每一步有状态门控,可补跑
飞书 · lark-channel-bridgeWebSocket 长连接;PM2 常驻;Hermes 代理
172 / 25k海外线 TypeScript 文件 / 行
42 / 561海外线 测试文件 / 通过的测试
23海外线 数据库迁移
48 / 35国内线 步骤脚本 / 公共模块
43 / 1.7万国内线 测试文件 / 测试代码行
14 / 12国内线 JSON Schema / 提示词
WRITE ONCE · PUBLISH EVERYWHERE

内容只做一份,分发交给系统。

海外与国内、三语与多平台、审核与防重复、客户消息与线索、手机遥控——一条流水线跑到底。