把系统卖给更多人——从一人公司到可复制商业系统

把系统卖给更多人——从一人公司到可复制商业系统

开篇:朋友问了一句「能不能给我也搭一套」

你的OPC系统已经能写文章、能接待客户、能交付产品、能分析数据、能自己照顾自己了。上一篇文章(从996到007——OPC的无人值守运维体系)里,我们把最后一个人肉环节也自动化了:系统挂了能自己爬起来,爬不起来才叫你。

然后有一天,一个做培训的朋友看完你的文章,问:「能不能给我也搭一套?」

你答应了。然后你打开代码,沉默了。

因为这套系统从头到脚都是给你自己用的:平台凭据写在脚本里,文章质量靠你人眼把关,发布记录躺在你脑子里。给朋友搭一套,等于把三个月的活儿重做一遍。你第一次意识到:系统搭得好,和系统能复制,是两件完全不同的事。

今天的解药是三步跃迁:配置化、门禁化、产品化。 三步走完,你的系统从「服务一个人」变成「能被很多人安装」——你从一个人公司,升级成系统公司。


一、先想明白:为什么复制系统比搭系统还难

系统不能复制的根因,不是功能不够,是「你」和系统绑得太紧。具体绑在三个地方:

  1. 凭据写死在代码里:换一个平台账号、换一个客户,都要改代码
  2. 质量靠你人肉把关:你盯着就正常,你不在就没人管
  3. 过程全在你脑子里:哪篇发了、发到哪、效果如何,没有任何可审计的记录

所以可复制系统的第一步,不是加功能,是把「你」从系统里拆出来。拆完之后,系统第一次可以被「别人」使用——而别人使用你的系统,才是你从卖时间转向卖系统的开始。


二、整体架构:可复制商业系统的4层

article22-replication-architecture: 可复制商业系统4层架构总览图,从上到下依次为内容生产层、质量门禁层、适配器层、台账层四个色块,每层标注核心组件,右侧从红叉标记的写死状态箭头指向绿色标记的可复制状态,底部标注下层是上层的复用基础

架构图就是这篇文章的路线图:

┌──────────────────────────────────────────────────┐
│ Layer 1: 内容生产层                                │
│ → 一篇原文,内容工厂自动成稿,图文配齐               │
├──────────────────────────────────────────────────┤
│ Layer 2: 质量门禁层                                │
│ → validate → continuity → checker → gate          │
│ → 不通过就不许发布                                  │
├──────────────────────────────────────────────────┤
│ Layer 3: 适配器层                                  │
│ → 公众号 / Dev.to / Hashnode / 博客园             │
│ → 每个平台一个适配器函数                            │
├──────────────────────────────────────────────────┤
│ Layer 4: 台账层                                    │
│ → publication-ledger,全平台URL注册表              │
│ → 上新平台 = 加一行                                │
└──────────────────────────────────────────────────┘

前两层解决「系统怎么被信任」,后两层解决「系统怎么被复制」。下面逐层拆开,对应三步跃迁。


三、Step 1:配置化——把「你」从代码里抽出来

先解决最硬的一个坑:凭据和参数写在代码里,是系统不能复制的第一道锁。

早期脚本长这样:平台 token 直接写在文件顶部,换一个账号就要改代码、重新发布流程,而且代码一旦流出,凭据跟着泄露。解法只有一个动作:把配置从代码里挪出去。

第一步,创建 platforms.env 配置文件:

# platforms.env - one line per platform, one file for all platforms
# change account = edit this file, not the code
DEVTO_API_KEY=xxxx
HASHNODE_TOKEN=xxxx
HASHNODE_PUB_ID=6a6d64167b082815e6b87962

第二步,写一个统一的加载函数,代码里只认环境变量,不认硬编码:

# multi_publish.py - load credentials from config file
def load_creds():env = {}with open('/root/.wenyan/platforms.env') as f:for line in f:line = line.strip()if not line or line.startswith('#') or '=' not in line:continuek, v = line.split('=', 1)env[k.strip()] = v.strip().strip("'\"")return env

验证:删除脚本里的硬编码凭据,只保留 load_creds(),运行发布管道的第一道验证,输出应与硬编码时完全一致。

踩坑:配置文件的解析要比想象中严格。空行、注释行、带引号的值,三种情况都要处理,否则换一台机器就崩。上面代码里的 startswith('#')strip("'\"") 就是为这三种情况写的。

直接价值:换一个人用你的系统,不再是改代码,而是复制一份配置文件:打开 platforms.env,写入新平台的凭据,代码一行不用动。换人 = 换配置,不换代码。

认知跃迁:配置化的本质,是把「你脑子里的知识」沉淀成「机器能读的数据」。系统第一次可以被别人安装。


四、Step 2:门禁化——把「质量」从人肉审核变成机器门禁

配置解决了「谁都能装」,但紧接着的问题更致命:系统被别人用时,你不可能手把手教每个使用者「文章要怎么写」。

早期我们靠人眼把关,结果踩过一个真实的坑:一篇已经进草稿箱的文章,缺下一篇预告、配图不合规、封面图和前两篇重复——人眼检查时全都没看出来,直到发布门全量扫描才暴露。人眼审核的缺陷不是不够认真,是不可复现:你状态好就看出来,状态不好就漏过去。

解法是把质量检查写成物理管道,执行下面4条命令,4道门缺一不可:

# physical pipeline - 4 gates before any publish
python3 validate_article.py check article-22.md
python3 check_series_continuity.py check
python3 article_checker.py article-22.md
python3 publish_gate.py article-22.md

再修改发布脚本,把门禁接到发布命令前面,不通过就直接拦下:

# publish_gate.py - core gate logic
def run_validator(filepath):result = subprocess.run(["python3", str(SCRIPTS_DIR / "validate_article.py"), "check", filepath],capture_output=True, text=True, timeout=30)if result.returncode != 0:return Falsereturn True

验证:故意在一篇文章里删掉下一篇预告,跑发布门,命令返回非零,发布被拦截;补上预告,再跑,通过。

踩坑:门禁必须放在发布命令前面,而不是发布流程里让人「记得跑」。放在前面,是物理拦截;放在后面,是道德约束。物理拦截不会忘记。

直接价值:质量第一次不依赖个人水平。客户催得再急,机制不放行就是不放行——机制不累,机制没有情绪。

认知跃迁:门禁化的本质,是把「你的标准」固化成「机器的确定性」。标准变成代码之后,系统第一次可以被别人放心使用。


五、Step 3:产品化——适配器 + 台账,把系统变成资产

配置让人能装,门禁让人敢用,但离「卖」还差一步:系统要能同时服务多个平台、多个客户,还要让每个平台的发布状态可查。

这一步做两件事:适配器让「平台」变成可插拔,台账让「记录」变成数据资产。

第一件事,适配器。每个平台写一个函数,输入统一,输出各平台格式:

# multi_publish.py - adapter pattern, one function per platform
def publish_hashnode(title, body_md, tags, token, pub_id):# check duplicate before publish - prevent double post on retryif hashnode_title_exists(title, token, pub_id):return f"SKIPPED (duplicate): {title}"create_q = "mutation CreateDraft($input: CreateDraftInput!) { createDraft(input: $input) { draft { id } } }"# then call publishDraft with the returned draft id

这个查重不是锦上添花,是用一次真实事故换来的:早期发布时,接口返回「Draft not found」,我们以为是失败就重试,结果文章其实已经发布成功——同一个标题在平台上出现了两次。发布前先查重,是适配器的最低底线。

第二件事,台账。一个文件管全平台,一行一篇:

# publication-ledger.md - one row per article per platform
| # | 标题 | 公众号 | 博客园 | Dev.to | Hashnode | 首发时间 |
|:-:|:-----|:-------|:-------|:-------|:---------|:---------|
| B6 | 把系统卖给更多人 | ✅草稿 | /p/xxx | dev.to/xxx | hashnode.dev/xxx | 2026-08-07 |

article22-ledger-flow: 一文多发数据流图,从一篇原文出发经过内容改写进入适配器层,再分发到公众号、Dev.to、Hashnode、博客园四个平台,各平台URL回写到台账登记,台账反过来支撑下一篇引用上一篇已发状态

验证:接一个新平台,写一个适配器函数 + 台账加一行,发布一次,台账里出现对应 URL,流程闭环。

踩坑:台账必须发布完立刻登记,不能攒着。我们吃过三次「已发未登记」的亏:文章在海外平台都上线了,队列里却没有条目,导致分发任务看不到、不补发。发布动作和记录动作要绑在同一步。

直接价值:添加一个新平台时,只需要写一个适配器函数、台账加一行。系统从「一个脚本」变成「一份资产清单 + 一套复制流程」。

认知跃迁:产品化的本质,是把「过程」变成「资产」。适配器是可插拔的接口,台账是可审计的记录——系统第一次可以被别人接管。


六、Before vs After:人肉公司 vs 系统公司

环节人肉公司系统公司
接新客户重写一遍代码复制一份配置文件
质量把关靠你人眼审核4道机器门禁
发布记录在你脑子里台账可查可审计
新平台接入从零研究一遍写一个适配器
扩展上限你的时间和精力系统的吞吐能力

article22-three-steps: 三步跃迁对比流程图,上排为配置化、门禁化、产品化三个步骤色块,下排为Before人肉交付与After系统交付的对比框,人肉交付标注改代码跑通出问题找你,系统交付标注拷贝配置门禁自动验收,底部金句质量靠机制不靠人


七、进阶思考:可复制系统的本质,是「信任机制」

很多人以为「卖系统」就是把代码打包卖出去,收一次钱。方向不对。

系统公司卖的不是代码,是确定性。 客户敢用你的系统,不是因为你个人靠谱,是因为机制保证「谁用都不会跑偏」:

  • 机器门禁 = 质量的确定性:不管使用者是谁,不合格的输出都进不了发布管道
  • 台账 = 过程的确定性:任何一篇发到哪、什么时候发的,都查得到
  • 适配器 = 平台的确定性:新平台接入有固定套路,不依赖某个人的经验

再往深一层看,这就是 Loop Engineering 的终局:把「复制系统」这件事本身也做成闭环。 每复制一份给新客户,就得到一份真实反馈——哪个平台跑不通、哪个门禁误伤、哪个适配器要升级。反馈回灌系统,系统下一次复制时就更完善一点。

复利就在这里:一次构建,N 次复制,每次复制都是增量反馈。 从「卖时间」到「卖系统」,再从「卖系统」到「卖进化」——后者才是真正的系统公司。


八、总结:今天就能开始的三件事

回顾三步跃迁:

  1. 配置化:platforms.env + load_creds(),把凭据从代码里挪出去
  2. 门禁化:validate → continuity → checker → gate 四道物理管道
  3. 产品化:每个平台一个适配器 + publication-ledger 台账

不要等有人来问你「能不能给我也搭一套」。今天做三件事:把凭据挪进配置文件;给发布命令前加一道验证脚本;建一个台账文件记录全平台的发布状态。

做完这三件,你的系统就从「你的系统」变成了「能卖的系统」——这是 OPC 系列的最后一块拼图,也是系统公司的第一块地基。

下一篇预告:开启新系列——数智化转型实战
系列二收官了。一个人的系统方法论已经完整:从架构蓝图到内容工厂,从智能客服到无人值守,从 A/B 测试到可复制系统。但一个人再强,也只是一个人。下一篇开始,我们把视角从「一个人」拉到「一个组织」——数智化转型实战系列第一篇:一个人的方法论,怎么迁移到一个团队?

本文认知索引

️ 实体:配置化 · 物理门禁 · 平台适配器 · 发布台账 价值:系统复制 · 多平台分发 · 可审计记录 认知:从「卖时间」到「卖系统」,再到「卖进化」


关于作者:魏无记,AI 和数智化实践者。专注 Agent 工程化与 Loop Engineering 研究以及数智化转型。公众号持续更新 Agent 工程化实战系列和数智化转型相关知识实践——每篇都是保姆级教程照做就行。