我的一人OpenClaw公司架构v1.0,把公司的会计、合规、运维全交给了AI

OJT知币网

作者:xiyuOJT知币网

不想阅读的,可以直接发给你的 openclawOJT知币网

一个人 + OpenClaw = 一个管理团队

用开源 AI Gateway 打造一人公司全栈管理系统OJT知币网

ai时代以前的单人公司

如果你在经营一人公司或者独立业务,大概是这样的节奏:上午对账、下午写方案、晚上处理合规文件,中间还要回客户消息、检查服务器状态、更新数据报表。OJT知币网

你不是在做一份工作,你是在同时做五份工作。OJT知币网

大多数人的第一反应是找个 AI 聊天机器人帮忙。ChatGPT、Claude,确实能回答问题、写写文档。但用了一段时间你会发现——聊天机器人解决的是「问答」问题,不是「管理」问题。OJT知币网

你需要的不是一个更聪明的助手,而是一个 AI 管理层:能分工、能记住上下文、能自动执行任务、能在该请示的时候请示你。OJT知币网

这篇文章分享我用 OpenClaw(一个开源的 AI Gateway)搭建一人公司全栈管理系统的完整思路和踩坑经验。不是概念验证,是实际在跑的系统。OJT知币网

为什么是 OpenClaw

OpenClaw 的优势:OJT知币网

  • 开源、自托管 —— 数据全在自己机器上,不经过第三方OJT知币网

  • 原生多 Agent —— 不同 Agent 有独立的人格文件(SOUL.md)、工具权限、记忆空间OJT知币网

  • Discord 集成 —— 频道就是部门,发消息就是下指令,天然的管理界面OJT知币网

  • 持久运行 —— 不是跑一次就结束的 workflow,而是 7×24 在线的 GatewayOJT知币网

最关键的一点:频道 = 部门,消息 = 指令。这个模型天然适合管理场景。你在 #accounting 频道说「本月支出汇总」,会计 Agent 自动响应;在 #ops 频道说「检查服务器状态」,运维 Agent 接手。不需要记住任何命令语法,就像给下属发消息一样自然。OJT知币网

多 Agent 架构设计

角色分工OJT知币网

我的系统目前规划了这些角色:OJT知币网

  • CTO Agent —— 技术负责人,系统架构、代码、部署、工具开发OJT知币网

  • 会计 Agent —— 记账、对账、月度结算、报表生成OJT知币网

  • 业务 Agent —— 客户沟通、订单跟踪、报价管理OJT知币网

  • 合规 Agent —— 法规检查、文件归档、定期扫描OJT知币网

  • 监控 Agent —— 系统心跳、异常告警、资源监控OJT知币网

阶段化激活

这里有一个很重要的设计理念:不要一开始就把所有 Agent 都激活。OJT知币网

业务量小的时候,让 CTO 代行会计和合规的职责就够了。等业务量上来,再逐步拆分:OJT知币网

阶段 A(起步期):CTO 一人多职,其他 Agent 休眠OJT知币网

阶段 B(稳定期):激活会计 + 合规,CTO 专注技术OJT知币网

阶段 C(扩展期):全员上线,各司其职OJT知币网

阶段切换可以用定时任务自动检测触发条件(比如月交易笔数超过阈值),也可以手动切换。关键是 架构先搭好,激活按需来。OJT知币网

频道路由

#cto-office → CTO AgentOJT知币网

#accounting → 会计 AgentOJT知币网

#compliance → 合规 AgentOJT知币网

#ops-monitor → 监控 AgentOJT知币网

#general → 所有 Agent 都能看到,按需响应OJT知币网

OpenClaw 的配置文件里可以指定每个 Agent 监听哪些频道。消息进来后自动路由,不需要手动 @。OJT知币网

决策权限矩阵

这是整个系统最重要的设计之一:OJT知币网

护栏内 → Agent 自主执行,事后记录OJT知币网

护栏外 → Agent 暂停,@老板请求决策OJT知币网

不确定 → 视为护栏外,宁可多问一次OJT知币网

举个例子:OJT知币网

  • 记一笔常规支出 → 护栏内,自动执行OJT知币网

  • 删除一条数据库记录 → 护栏外,必须确认OJT知币网

  • 遇到一个没见过的税务分类 → 不确定,上报OJT知币网

关键原则:Agent 永远不应该在不确定的情况下自作主张。 误操作的修复成本远高于多问一句的沟通成本。OJT知币网

数据架构

单一数据源

所有业务数据存在本地 SQLite 数据库里。为什么不用 MySQL 或 PostgreSQL?因为一人公司不需要并发,SQLite 零配置、零运维、一个文件搞定,备份就是复制文件。OJT知币网

~/.openclaw/data/main.dbOJT知币网

├── transactions # 交易记录OJT知币网

├── clients # 客户信息OJT知币网

├── documents # 文书索引OJT知币网

├── audit_log # 审计日志OJT知币网

└── ...OJT知币网

统一操作层

所有数据库操作必须通过一个统一的操作脚本(比如 db_ops.py),禁止直接写 SQL。好处:OJT知币网

  • 自动审计 —— 每次操作自动记录:谁、什么时候、做了什么、改了什么OJT知币网

  • 格式统一 —— 不会出现一个 Agent 用这种格式、另一个用那种格式的问题OJT知币网

  • 权限控制 —— 在操作层就能拦截越权操作OJT知币网

Notion 镜像备份

SQLite 是数据源,但不方便人类浏览。所以我用 Notion 做可视化镜像:OJT知币网

  • 实时同步:关键操作(新增交易、状态变更)触发即时同步OJT知币网

  • 每日兜底:每天 23:00 全量校验一次,确保没有遗漏OJT知币网

  • 只读镜像:Notion 那边只看不改,避免双向同步的噩梦OJT知币网

多语言导出

如果你的业务涉及多语言场景,可以在导出层做语言适配:OJT知币网

db_ops.export_csv() # 中文版OJT知币网

db_ops.export_csv() # 英文版OJT知币网

db_ops.export_csv() # 双语对照OJT知币网

列名、分类名、状态标签都在配置文件里维护映射表,导出时自动翻译。OJT知币网

记忆系统

双层记忆架构

OJT知币网

工作记忆有容量上限(比如 200 行),超了就要淘汰。长期记忆理论上无限,但检索质量会随数据量增长而下降,需要定期清理。OJT知币网

遗忘曲线:基于引用日期的过期机制

每条记忆都带一个 ref(引用日期),记录它最后一次被实际使用的时间。注意:自动加载不算引用,只有在回复中实际用到才算。OJT知币网

OJT知币网

- [2025-01-15][ref:2025-02-20] 供应商 A 的付款周期是 Net 30OJT知币网

- [2025-01-15][ref:2025-01-15] 某个临时备忘(一个月没用到,即将过期)OJT知币网

过期规则:OJT知币网

  • 高优先级记忆:ref 超过 90 天淘汰OJT知币网

  • 临时备忘:ref 超过 30 天淘汰OJT知币网

  • 核心身份信息:永不淘汰OJT知币网

置信度评分OJT知币网

不是所有记忆都一样可信。我给每条记忆加了置信度分数:OJT知币网

来源定价(写入时):OJT知币网

  • 用户亲口确认 → 0.95OJT知币网

  • 手动录入 → 0.85OJT知币网

  • 自动从日志提取 → 0.50OJT知币网

时间衰减: ref 超过 60 天没被命中的记忆,置信度每天 ×0.95OJT知币网

检索增强: 每次被搜索命中,置信度 ×1.05(上限 0.95)OJT知币网

自动清除: 置信度低于 0.1 时删除OJT知币网

为什么过时的记忆比没有记忆更危险OJT知币网

这是一个血泪教训。没有记忆,Agent 会说「我不知道」,然后你去查。但如果 Agent 记着一条过时的信息(比如三个月前的价格、已经废止的规定),它会非常自信地给你一个错误答案,而你可能不会去验证。OJT知币网

过时的记忆是带毒的缓存。 所以遗忘机制不是可选的,是必须的。OJT知币网

自动化运维

定时任务示例OJT知币网

cron:OJT知币网

- name: monthly-settlementOJT知币网

schedule: "0 10 1 * *" # 每月1号上午10点OJT知币网

action: 月度结算汇总OJT知币网

- name: compliance-scanOJT知币网

schedule: "0 9 * * 1" # 每周一上午9点OJT知币网

action: 合规扫描OJT知币网

- name: system-healthcheckOJT知币网

schedule: "*/30 * * * *" # 每30分钟OJT知币网

action: 系统心跳检查OJT知币网

- name: data-syncOJT知币网

schedule: "0 23 * * *" # 每天23点OJT知币网

action: 数据同步到 NotionOJT知币网

- name: memory-cleanupOJT知币网

schedule: "30 23 * * *" # 每天23:30OJT知币网

action: 记忆过期清理OJT知币网

心跳监控OJT知币网

每 30 分钟让监控 Agent 检查一次系统状态:Gateway 是否在线、磁盘空间、数据库完整性。异常时通过 Discord 告警。OJT知币网

自动升级检测OJT知币网

定期检查 OpenClaw 是否有新版本,有的话通知你,但不自动升级(升级属于「护栏外」操作)。OJT知币网

安全设计

一人公司的 AI 系统,安全设计不能省。因为出了事没有别人帮你兜底。OJT知币网

敏感操作按钮确认

所有危险操作(删除、修改关键配置、执行 shell 命令)必须弹出确认按钮:OJT知币网

⚠️ 确认执行?OJT知币网

操作:删除 2024 年归档数据OJT知币网

影响:不可恢复OJT知币网

[✅ 确认] [❌ 取消]OJT知币网

不是文字确认,是 Discord 的交互组件按钮。防止 Agent 自己「点确认」。OJT知币网

命令白名单 + 分级控制OJT知币网

? 自由执行:ls, cat, head, tail, sqlite3 (只读)OJT知币网

? 需要记录:python3, node, 写文件操作OJT知币网

? 需要确认:rm, chmod, 网络请求, 数据库写入OJT知币网

⛔ 绝对禁止:sudo, 修改系统文件, 访问敏感目录OJT知币网

蜜罐文件检测

在敏感目录放几个「蜜罐文件」(honeypot)。如果 Agent 试图读取这些文件,说明它可能被 prompt injection 了,立即触发告警并暂停该 Agent。OJT知币网

PII 审计扫描OJT知币网

定期扫描所有 Agent 的输出日志,检查是否意外泄露了个人身份信息(PII)。一旦发现,告警 + 自动打码。OJT知币网

踩坑经验

Mac 做服务器的休眠问题OJT知币网

如果你用 Mac 跑 OpenClaw Gateway,一定要处理休眠问题。Mac 默认会在空闲时休眠,Gateway 随之断开。解决方案:OJT知币网

# 禁止休眠(需要 sudo)OJT知币网

sudo pmset -a sleep 0 displaysleep 0 disksleep 0OJT知币网

# 或者用 caffeinate 保持唤醒OJT知币网

caffeinate -s &OJT知币网

但要注意散热和电费,长期跑建议上个低功耗的 Linux 设备。OJT知币网

exec 权限平衡OJT知币网

给 Agent 的 exec 权限太大,它可能误操作搞崩系统;太小,很多自动化任务跑不了。我的经验是:OJT知币网

  • 默认最小权限OJT知币网

  • 按需开放,每次开放都记录原因OJT知币网

  • 用白名单而不是黑名单OJT知币网

Gateway 重启后 session 断开OJT知币网

OpenClaw Gateway 重启后,之前的对话 session 会丢失。如果你有依赖 session 上下文的长任务,要么做好断点续传设计,要么把关键上下文写入文件。OJT知币网

Notion API 的各种限制OJT知币网

  • 每分钟请求数有限制(rate limit)OJT知币网

  • 单个 block 的文本长度有上限(2000 字符)OJT知币网

  • 不支持某些富文本格式OJT知币网

  • 数据库属性类型变更会导致同步脚本报错OJT知币网

建议:同步脚本要做好错误处理和重试逻辑,不要假设 API 调用一定成功。OJT知币网

配置合并只能追加不能替换OJT知币网

OpenClaw 的配置文件合并逻辑是追加式的,不是替换式的。也就是说,如果你在本地配置和全局配置里都定义了同一个字段,结果是合并而不是覆盖。踩过坑之后我学会了:关键配置只在一个地方定义,不要分散。OJT知币网

一个人经营一家公司,最大的瓶颈不是能力,而是带宽。你不可能同时精通会计、法务、技术、业务,还要保证每件事都不出错。OJT知币网

一个人 + 一套设计良好的 AI 系统 = 一个完整的管理团队。

但关键词是「设计良好」。这意味着:OJT知币网

  • 权限边界清晰 —— Agent 知道什么能做、什么不能做、什么要问OJT知币网

  • 数据流可追溯 —— 每一笔操作都有记录,出了问题能查OJT知币网

  • 安全不妥协 —— 蜜罐、白名单、PII 扫描,一个都不能少OJT知币网

  • 记忆会过期 —— 过时的信息比没有信息更危险OJT知币网

  • 阶段化演进 —— 不贪多,按需激活,保持系统简单OJT知币网

这不是一个「用 AI 替代人」的故事,而是一个「用 AI 让一个人能管住一摊事」的实践。OJT知币网

系统还在持续迭代中,但核心架构已经稳定跑了一段时间。如果你也在考虑用 AI 来管理自己的独立业务,希望这些经验对你有用。OJT知币网

技术栈:OpenClaw + SQLite + Notion + Discord + PythonOJT知币网

适用场景:一人公司、独立开发者、自由职业者、小型工作室OJT知币网