一份合同模板 + 一份客户名单 → 3 份套好模板的合同、3 份 HTML 审阅稿,加一次财务模型公式重算的改前 / 改后对照。全部由 agent 本地跑 OfficeCLI 产出,不装 Word/Excel/WPS,不出网。
Agent 拿到的原料:一份带占位符的 Word 合同加一份 Excel 客户名单。占位符用 {{字段}} 写法,姓名 / 电话 / 项目 / 金额 / 签约日期都能一一对应到 Excel 的列。
保留全部占位符的合同模板。下载后在 Word 或 WPS 直接打开可编辑。
| 公司 | 联系人 | 电话 | 服务项目 | 服务期限 | 金额 | 签约日期 |
|---|---|---|---|---|---|---|
| Acme 有限公司 | 张明 | 021-5588-1201 | 品牌年度视觉咨询 | 12 个月 | 128,000 | 2026-07-14 |
| Globex 网络 | 李婷 | 010-8899-3407 | 运营团队工作坊 | 6 个月 | 86,000 | 2026-07-14 |
| Initech 科技 | 王凯 | 0755-2288-9902 | AI 转型咨询 | 9 个月 | 215,000 | 2026-07-14 |
3 行客户数据,每一行会变成一份合同。下载后在 Excel/WPS 打开可继续编辑或加行。
Agent 依次读 clients.xlsx 的每一行,把 contract_template.docx 复制成一份新的 .docx,把 {{甲方公司}}、{{金额}} 等占位符替换成这一行客户的数据。每份合同同时另存一份 HTML 预览,方便合同/法务人员在浏览器里过一遍。
同一份客户数据也可以套到 .pptx 模板里。同一个占位符协议,同一次 mail-merge,Word / Excel / PowerPoint 三种文件一次生成。下方是 Acme 的入职欢迎页。
每一份改后的合同都对应模板里的同一批占位符。下表按合同逐一列出:黄底 = 模板占位符,绿底 = 该客户在 clients.xlsx 里的实际数据。这是 agent 判断「有没有套错」的核心视图。
| 占位符 | Acme 有限公司 | Globex 网络 | Initech 科技 |
|---|---|---|---|
| {{甲方公司}} | 占位符 → Acme 有限公司 | 占位符 → Globex 网络 | 占位符 → Initech 科技 |
| {{甲方联系人}} | 张明 | 李婷 | 王凯 |
| {{联系电话}} | 021-5588-1201 | 010-8899-3407 | 0755-2288-9902 |
| {{服务项目}} | 品牌年度视觉咨询 | 运营团队工作坊 | AI 转型咨询 |
| {{服务期限}} | 12 个月 | 6 个月 | 9 个月 |
| {{金额}} | 128,000 | 86,000 | 215,000 |
| {{金额大写}} | 壹拾贰万捌仟元整 | 捌万陆仟元整 | 贰拾壹万伍仟元整 |
| {{签约日期}} | 2026-07-14 | 2026-07-14 | 2026-07-14 |
模板里一共 8 个占位符,每份合同都替换成功 8 / 8;没有残留 {{...}}。agent 会把这个数字写进下一 Tab 的 manifest,供任何审阅流程二次校对。
每一次 pipeline 跑完都会同步落一份 manifest.json:每份合同用了哪一行客户数据、字段映射、8 个占位符是否已全部替换。这是让 agent 和人类都能过审的关键中间件。
{
"pipeline": "contract-mail-merge",
"template": "contract_template.docx",
"data_source": "clients.xlsx",
"placeholders": [
"{{甲方公司}}", "{{甲方联系人}}", "{{联系电话}}",
"{{服务项目}}", "{{服务期限}}", "{{金额}}",
"{{金额大写}}", "{{签约日期}}"
],
"contracts": [
{
"file": "contracts/acme.docx",
"preview_html": "preview/acme.html",
"field_map": {
"company": "Acme 有限公司",
"contact": "张明",
"金额": "128,000",
"签约日期": "2026-07-14"
}
},
{
"file": "contracts/globex.docx",
"preview_html": "preview/globex.html",
"field_map": {
"company": "Globex 网络",
"contact": "李婷",
"金额": "86,000",
"签约日期": "2026-07-14"
}
},
{
"file": "contracts/initech.docx",
"preview_html": "preview/initech.html",
"field_map": {
"company": "Initech 科技",
"contact": "王凯",
"金额": "215,000",
"签约日期": "2026-07-14"
}
}
],
"placeholders_left": 0,
"replaced_keys_per_contract": 8
}
下方 财务月报重算 也带一份 fin_manifest.json,列出每个 Summary 单元格的改前 / 改后值与所用公式。contracts_manifest.json · fin_manifest.json