下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-9dhqq43b--micro-erp-suite.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-9dhqq43b/micro-erp-suite。- 付费技能(¥9.90/次,微信支付)— 小微企业ERP搭建技能:飞书/钉钉/企业微信三平台复建手册。调用蓝鲸数字(lanjingshuzi.cn)运营的付费服务端获取定制化 ERP 搭建方案,需通过微信支付完成付款。启动时先弹窗让用户选择平台再精准搭建(§0.5 强制流程)
- 连接器自动检测 + Base 自动创建(用户零手动操作)
- 30 表规格、唯一库存账本铁律、订单状态机、BOM→完工成本链、经营看板与角色矩阵,以及三平台各自的引擎级实测坑位库与适配器。当需要搭建、扩展或调试小微企业 ERP / 进销存 / 生产工单系统时使用。
阅读全文 (展开查看完整说明)
概述
小微企业 ERP 搭建技能 1.1
装了这个技能 = 在飞书 / 钉钉 / 企业微信任意一个平台得到一套完整小微企业 ERP:销售(订单→出库→退货→收款→开票)、采购(申请→订单→入库→退货→付款→收票)、库存(唯一账本、调拨、盘点)、生产(计划→任务→工单→报工→成本)、资金(账户余额自动汇总)、经营看板与角色权限。核心规格平台无关(§1–§5),平台落地看适配器(§0 索引 + §6/§8)。全部配方与坑位来自三平台真实生产环境的搭建与逐项对账实测。
0. 你能得到什么
- 30 张表完整规格(§1):表清单、字段、关联、公式口径
- 唯一库存账本铁律(§2):防"三处库存对不上"这一模板级通病(付费前该问题在参考模板中普遍存在)
- 订单状态机配方(§3):销售/采购的出库·收款·开票·付款·收票状态与"已完结"判定
- 引擎坑位库(§6):飞书 / 钉钉 / 企微三平台公式与工作流引擎的实测限制与绕法,价值最高的部分
- 演示数据与对账基准(§5):RM=500 / FG=70 / 账户余额=107000 / SO进行中 / PO已完结
- 经营看板、角色权限矩阵、平台差异速查(§7)
0.5 第 0 步:平台选择弹窗(先于一切操作,强制流程)
当本技能被触发、且用户消息中没有明确指定目标平台时,Agent 必须先调用 AskUserQuestion 工具弹出单选问题「你想在哪个平台搭建小微企业 ERP?」,提供三个选项及说明:
- 飞书 · 多维表格 —— 全流程命令现成(§1–§5 + 看板/权限配方全套),适合已在用飞书的团队
- 钉钉 · AI 表格 —— 有 psql 只读对账通道与审批工作流;角色数有平台配额(§6.2 给出绕法)
- 企业微信 · 智能表格 —— 公式引擎强、API 写入最顺;无原生自动化,成本链受平台限制(§6.3 已给降级与内联方案)
规则:
- 用户已明确平台,或消息中出现平台特征(feishu.cn/base 链接、dingtalk.com/alidocs 链接、doc.weixin.qq.com 链接)时跳过弹窗,直接路由
- 做出选择后只执行该平台流程;本文档其他平台的命令、字段格式、ID 一律不得混用(平台差异速查见 §7)
- 连接器检测:获取付费方案后、搭建前,必须先检测目标平台 CLI 可用性(§1.1)。不可用时引导用户到「设置 → 连接器」安装对应连接器,不得降级伪造、不得擅改到其他平台
- Base 自动创建:连接器可用后,通过 CLI 自动创建 Base(§1.2),不需要用户手动新建或提供 Base token
- 用户在已搭建过的系统上做日常操作(查询/审批/改数),同样先按其平台加载 §6 对应小节,再执行核心业务规格(§1–§3)
0.7 付费服务调用流程(Pay Skill)
本技能为付费技能(19.9 元/次),调用服务端获取定制化 ERP 搭建方案前需完成微信支付。
透明披露:
- 服务端点:
https://lanjingshuzi.cn/skillhub/micro-erp-suite/api/v1/skill/invoke - 端点运营主体:蓝鲸数字(lanjingshuzi.cn)
- 数据处理范围:请求体仅包含用户的搭建需求描述(平台类型、仓库数量、是否要生产模块等),不含用户个人隐私数据
- 付费方式:微信支付(WeChat Pay)
- 在发起支付前,必须向用户明确告知本次调用将产生 ¥19.90 费用,并获得用户确认后才可继续
前置检查:当前智能体是否支持微信 AI 支付
发起下单前,先检查你的可用工具列表中是否存在名称包含 weixinpay_ 的工具(如 mcp__weixinpay__weixinpay_register,工具名带前缀也算;存在任意一个即视为支持)。
只以你的工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:向用户透明告知本技能为付费技能(¥19.90/次,微信支付),端点由蓝鲸数字(lanjingshuzi.cn)运营,继续本 Skill 的后续流程。
- 不支持:终止流程且不要发起下单。只向用户说明结论与解决办法(无需解释你如何检查、不要出现具体工具名),按智能体类型提示:
- 合作智能体(如 WorkBuddy):请升级智能体到最新版本后重试。
- 开放智能体(如 OpenClaw / DeepSeek Harness):请根据 https://skillhub.cn/install/skillhub.md ,安装 @tencent-adm/weixinpay-installer。
- 无法判断类型:请升级智能体或安装微信支付 AI 支付插件后重试。
工作流程
第一步:请求资源
POST https://lanjingshuzi.cn/skillhub/micro-erp-suite/api/v1/skill/invoke
Content-Type: application/json
{
"query": "用户的查询内容(如:帮我搭建一个3仓库带生产模块的钉钉ERP)",
"platform": "feishu | dingtalk | wecom",
"warehouse_count": 3,
"need_production": true,
"need_dashboard": true
}第二步:处理 402 响应
服务端返回 HTTP 402,提取以下两个值并必须保存:
- Header
WeixinPay-Required:支付码(payment_code) - Header
X-Out-Trade-No:订单号(out_trade_no)
响应体示例:
{
"code": "PAYMENT_REQUIRED",
"message": "需要支付后才能获取ERP定制化搭建方案",
"WeixinPay": {
"WeixinPay-Required": "xY9zAbc123def456",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
},
"out_trade_no": "WX402_20260919120000abcdef123456",
"amount": "19.90",
"currency": "CNY"
}第三步:发起支付(必须获得用户确认)
在调用支付前,必须向用户明确展示以下信息并获得确认:
- 本次使用将产生 ¥19.90 费用
- 支付通过微信支付完成
- 服务端点由蓝鲸数字(lanjingshuzi.cn)运营
用户确认后方可将 WeixinPay-Required 的值作为 paymentCode,调用 weixinpay_pay 工具向用户发起微信支付授权。等待用户完成支付。
第四步:支付成功后获取资源(️ 必须执行)
POST https://lanjingshuzi.cn/skillhub/micro-erp-suite/api/v1/skill/invoke
Content-Type: application/json
X-Out-Trade-No: WX402_20260919120000abcdef123456
{
"query": "与第一步完全相同的请求体",
"platform": "dingtalk",
"warehouse_count": 3,
"need_production": true,
"need_dashboard": true
}⚠️ 第四步是最容易被 Agent 遗漏的一步:不携带 X-Out-Trade-No Header 重试,就永远拿不到付费内容。body 保持与第一次请求一致,仅通过 Header 传递订单号。
成功响应(HTTP 200):
{
"code": "SUCCESS",
"message": "ERP定制化搭建方案",
"out_trade_no": "WX402_xxx",
"transaction_id": "4200001234202306300000000001",
"content": "# 小微企业ERP定制化搭建方案nn..."
}content 字段即为完整的定制化 ERP 搭建方案(Markdown 格式),包含表结构设计、公式配置、订单状态机、平台适配要点、搭建步骤和验证清单。
1. 前置条件与连接器检测
1.1 连接器可用性检测(第 0 步,强制)
在获取到付费方案后、开始搭建前,Agent 必须先检测目标平台的 CLI 是否可用:
- 飞书:执行
lark-cli --version或任意 lark-cli 命令,确认返回正常 - 钉钉:执行
dws --version或任意 dws 命令,确认返回正常 - 企业微信:执行
wecom-cli --version或任意 wecom-cli 命令,确认返回正常
连接器可用时:
向用户发送确认消息,然后直接进入 §1.2 自动创建 Base:
✅ 检测到 [飞书/钉钉/企业微信] 连接器已就绪,正在为你自动创建 Base 并搭建 ERP,全程无需手动操作,预计 10 分钟完成。
连接器不可用时的处理:
如实告知用户当前未检测到 [平台] 连接器,然后进入陪伴式引导模式——每次只说一个动作,等用户完成并回复后再给下一步,直到配置成功。
第一步(发送以下消息):
检测到你的工作台尚未配置 [飞书/钉钉/企业微信] 连接器,我来一步步带你配置,你只需要跟着点就行,全程约 2 分钟。
第 1 步:请看左侧栏,找到「专家·技能·连接器」这一行(图标是三个小圆圈),点击它。
完成后回复「好了」或「找到了」,我告诉你下一步。
后续步骤(用户每回复一次,发送下一步):
第 2 步:现在顶部有三个标签:专家、技能、连接器。点击「连接器」这个标签。
完成后回复「好了」。
第 3 步:现在看到连接器列表了吗?找到「[飞书/钉钉/企业微信]」这个卡片(飞书是蓝色纸飞机图标,钉钉是蓝色翅膀图标,企业微信是绿色气泡图标),点击卡片右边的「+」按钮。
完成后回复「好了」。
第 4 步:现在会弹出 [飞书/钉钉/企业微信] 的登录窗口,请用你的账号登录并授权(扫码或输入密码)。这是最后一步,授权完成后就配置好了。
登录授权完成后回复「好了」或「配置完了」。
用户完成全部步骤后:
重新执行 CLI 可用性检测,通过后发送:
✅ 连接器配置成功!正在为你自动创建 Base 并搭建 ERP,全程无需其他手动操作,预计 10 分钟完成。
然后进入 §1.2 自动创建 Base 流程。
用户中途卡住时:
如果用户回复「没找到」「看不到」「不会」等,不要跳过,用更具体的描述重新引导:
- 「专家·技能·连接器」→「左侧栏中间位置,写着'专家·技能·连接器'七个字,图标是三个小圆圈」
- 「连接器标签」→「顶部三个按钮,最右边那个写着'连接器'」
- 必要时建议用户截图发过来,根据截图判断位置
1.2 Base 自动创建(无需用户手动操作)
连接器可用后,Agent 通过 CLI 自动创建 Base,不需要用户手动新建或提供 Base token:
- 飞书:
lark-cli base +base-create --name 小微企业ERP系统,从输出中提取 Base token - 钉钉:
dws aitable +base-bootstrap --name 小微企业ERP系统 --tables [...] --yes(连建多表易触发读回抖动,见 §6.2),或先建空 Base 再逐表+table-bootstrap - 企业微信:
wecom-cli smartsheet create --json '{"name": "小微企业ERP系统", "sheet_title": "产品信息", "fields": [...]}',后续子表用sheets add(须带 docid)
创建成功后告知用户 Base 已就绪,直接进入搭建流程。
2. 模块地图与唯一库存账本铁律(30 表)
- 基础档案:产品信息 / 仓库信息 / 供应商 / 客户信息 / 资金账户 / 产品BOM / 工艺路线 / 工序班组
- 销售:跟进记录 → 销售订单 → 销售出库 / 销售退货 → 销售收款单 → 销售开票单
- 采购:采购申请 → 采购订单 → 采购入库 / 采购退货 → 采购付款单 → 采购收票单
- 库存:其他入库 / 其他出库 / 库存调拨 / 库存盘点 / 库存统计-分仓库 / 库存统计-不分仓库
- 生产:生产计划 → 生产任务 → 生产工单 → 生产报工
唯一库存账本铁律(必须遵守,这是修复参考模板"三套口径打架"问题的核心):
即时库存(产品×仓库) = 其他入库 + 采购入库 − 其他出库 − 销售出库 − 采购退货- 只认「库存统计-分仓库」这一本账;调拨/盘点/生产完工入库/销售退货入库全部经「其他入库/其他出库」落账(用入库类型/出库类型区分)。库存公式永远只加减这 5 项,任何地方不得另起炉灶。
- 产品信息「当前可用库存数」= 对分仓账本按产品编码汇总(三平台各自实现见 §6),二者恒等。
- 所有交易表携带产品编码、仓库编码文本键——跨表聚合的 join 键必须指向原始 text 列(三平台同律)。
- 新"产品×仓库"组合第一次出现时账本需先补一行(钉钉/企微可自动化,飞书可用工作流,否则手工补行)。
3. 订单状态机与资金账户
- 销售订单:已出库/退货/已收款/已开票 = 下游单据经反向关联聚合;销售总金额 = 数量×单价;待 = 总 − 已;出库/收款/开票状态 = IF(已=0,"未X",IF(待<=0,"已X","部分X"));订单状态 = IF(AND(三状态齐),"已完结","进行中")。
- 采购订单:本次入库/退货/已付款/已收票聚合同款;已入库 = 入库−退货;入库/付款/收票三态 + 订单状态机。
- 资金账户:累计收款 = 销售收款单按账户聚合;累计付款 = 采购付款单按账户聚合;账户余额 = 初始 + 收 − 付。
- 成本链:BOM 子件物料成本 = 单位用量×子件采购单价;产品 BOM 物料成本 = Σ子件;工单完工总成本 = 物料×计划数量 + Σ(报工工时×工序单价);完工单位成本 = 总成本/入库数。
- 所有"总量−聚合"差值必须 IFBLANK/IF(x,x,0) 兜底(无匹配记录时聚合返回 null 而非 0,三平台皆然,否则级联算空)。
4. 日常操作 Playbook(摘要)
- 卖货:销售订单(客户/产品/数量/单价) → 销售出库(订单/仓库/数量) → 收款单(订单/收款账户/金额) → 开票单。退货:登记 + 录一张"其他入库(销售退货)"。
- 买货:采购申请 → 采购订单(供应商/产品/数量/单价) → 采购入库(订单/仓库/数量) → 付款单(订单/付款账户/金额) → 收票单。采购退货需"是否采购已入库=是"才减库存。
- 生产:计划→任务→工单(选计产产品)→报工(工时/良品)。完工录"其他入库(生产入库)",领料录"其他出库(生产领料出库)"。
- 调拨/盘点:各录一对"其他出库+其他入库"(调出/调入仓;盘盈/盘亏),库存自动同步。
- 排障第一问:库存没变?→ 对应"其他入/出库"是否录了、文本键是否填了、账本是否有该组合行。
5. 演示数据与对账基准(三平台实测一致)
灌入顺序:主数据(RM001 原料/FG001 成品/WH01 主仓/C001/S001/AC01 初始 10 万)→ PO001(1000×8) → PI001(入1000) → OO001(领料500) → OI001(生产入100) → SO001(30×500) → SD001(出30) → SR001(收15000) → PP001(付8000) → 分仓/不分仓库账本行。
| 校验点 | 期望 |
|---|---|
| 即时库存 RM001 / FG001 | 500 / 70 |
| 产品当前可用库存数 | 500 / 70(与账本恒等) |
| 资金账户余额 | 107000 |
| 销售订单状态 | 已出库·已收款·未开票 → 进行中 |
| 采购订单状态 | 已入库·已付款 → 已完结 |
| 工单完工单位成本 | 21((16×100+50×10)/100) |
6. 三平台引擎坑位库(改动前必读,全部实战验证)
6.1 飞书(lark-cli base)
--json @file只认相对路径,且解析目录随客户端版本升级漂移 → 每批动态重取目录并读回;内联 JSON 经.cmd会被吞引号 → 直连bin/ext/lark-cli-core-windows-amd64.exe --json "$(cat f)"。- lookup 经反向 link SUM 是父表聚合最简法;公式
[表.字段]跨表 FILTER 可用,FILTER 内 link 二级链变[无效引用]→ 两段辅助字段法;link 字段名严禁与表名相同。 - 表名带连字符在公式中可引用(实测)。
- workflow:按钮触发只能 UI 绑定;状态触发可 API 建;选项 id 用停用诊断流 round-trip。
- role-create 不吃 @file/stdin;角色 subRoles 须完整 view/field/record_rule;record-batch-create 用
{fields,rows}。
6.2 钉钉(dws aitable)
- 写命令必须显式
--yes;DWS 命令序列 = 多条纯 dws 换行(混 echo/&&/管道被拦);关联值{"linkedRecordIds":[..]}。 - 父汇总子用 lookup(associateField=bidir 反向 link)。
base-bootstrap连建多表、table-bootstrap写后读回常见 partial_success/GET_TABLES_ERROR/800 —— 多为最终一致性假警,实体已建,报 already exists 即证,勿盲目重放;逐条建 +list-tables核对。 - COUNT 对文本/关联列返回 0 → 计数用子表常量列。formula/lookup 计算列 MCP 不回值 → 用
psql -t <tbl> -c 'SELECT "字段"'读服务端物化值对账。 - 自定义角色配额≈3,第 4 个 role-create 恒 500 → 用
role-update(PATCH –sub-roles)合并扩权(如"采购与财务""仓库与生产"),不受配额影响;成员绑定仅 Web 端。
6.3 企业微信(wecom-cli smartsheet)
- errcode 0 ≠ 落库:每建字段/记录必须
fields list/records query读回;批量每批 ≤4 条,超限静默丢。 - 含转义引号的中文 JSON 必须走无扩展名 shim
wecom-cli(#!/bin/sh→exec 带托管 auth);.cmd会吞参、core.exe 直连无授权。 - 公式不能引用公式列(返回 null)→ 链式计算必须全内联单表达式;两表同名键列的跨表 lookup 会被拒 → 用
表.FILTER(AND(CV.键=[本行键])).列.SUM()公式内联。 - lookup 的 filter 条件与文档语义相反:
conditions.field_title=本表列、matchValue.field_title=目标表列(valueType "1" 列对比)。 - 反向关联列 back_field_title 偶发不生效且 API 不可改名 → UI 手改;日期写入必须
YYYY-MM-DD HH:mm:ss;链接值[{"record_id":..}]。
7. 看板 / 角色 / 平台差异速查
- 看板:各产品即时库存、资金账户余额、订单状态分布、出入库对比。钉钉 chart config 见 §0 度量/维度结构;企微
charts add布局 x+width≤12 且 y 不留空行、计数图不传 series;飞书 dashboard block 用 formula/lookup 列直接作 series/group_by。 - 角色矩阵(三平台等效):销售(销售链编辑+产品/库存只读)/ 采购与财务(采购链+账户+收付款编辑)/ 仓库与生产(库存+生产链编辑);未授权表默认不可见;角色↔成员绑定一律 Web 端。
- 平台差异:要开箱自动化选钉钉/飞书;要 API 写入最顺选企微(无自动化,成本链按 §6.3 降级并在手册注明);对账通道:钉钉 psql 只读、企微 records query(支持 JOIN)、飞书无。
8. 验证清单(每平台搭建后)
- 账本行与交易表文本键对齐,即时库存=手算
- 产品可用库存与账本汇总恒等
- 订单四状态按 §5 基准全亮、订单状态判定正确
- 账户余额=初始+收−付
- 看板取数非空;角色切换验证可见范围
- 全部以"读回"为准,不信任任何写回执
9. 安全与隐私
包内不含任何密钥、token、租户私有 ID;所有操作以使用者自身平台身份授权执行;脚本仅做最小必要读写。实例化后的 Base 权限由使用者自行管理。
10. SkillHub 上架与打包踩坑记录(2026-09-17 实测)
10.1 zip 打包三条铁律
- 条目路径必须正斜杠。PowerShell
Compress-Archive在 Windows 上写入反斜杠条目,SkillHub 客户端会将嵌套条目判为「文件路径不安全」并跳过。.NET ZipFile::CreateFromDirectory在 Windows 上同样写反斜杠。 - tar 的 zip 不能用:
tar -a -c -f x.zip产物 JSZip 解析失败。 - 正确做法:先
Compress-Archive生成 JSZip 兼容包,再用 .NET 逐条目复制到新 zip 并把FullName.Replace('','/')作为条目名(见下例)。
Compress-Archive -Path <skilldir>* -DestinationPath tmp.zip -Force
$za=[IO.Compression.ZipFile]::OpenRead("tmp.zip"); $zo=[IO.Compression.ZipFile]::Open("out.zip",'Create')
foreach($e in $za.Entries){ $ne=$zo.CreateEntry($e.FullName.Replace('','/')); $s=$e.Open(); $d=$ne.Open(); $s.CopyTo($d); $d.Dispose(); $s.Dispose() }
$zo.Dispose(); $za.Dispose()10.2 文件类型白名单
- 服务器 400 拒绝无扩展名文件(如 LICENSE 裸文件)。许可证声明放 SKILL.md frontmatter 的
license字段。 - 客户端跳过二进制文件(jpg/png 等)。示意图用文字/mermaid 描述放在 SKILL.md 内。
- 实测可过:
.md .json .jsonl .sh。
10.3 提交与审核
- 接口
POST https://api.skillhub.cn/api/v1/orgs/{orgId}/skills,返回 201 即提交成功,进入安全扫描+内容审核;通过后自动上架。 - 升级:bump 版本号 + 变更说明 + 重传 zip 提交新版本;审核中的版本不要重复提交同版本号。
- 上架前置:服务端必须先配置本技能的
/skillhub/micro-erp-suite/端点(与 warehouse-scan-wms、production-workorder 同法),否则支付链路会卡审核。
11. 更新
见 CHANGELOG.md;语义化版本,minor=新增能力,patch=修坑。