给硬件实验室搭一个 agent 能用的知识库

想让 Slack 里的 Claude 当实验室的主管 agent,先得给它一份能读的资料。用命令行工具把飞书里的群聊和文档拉出来,交给 15 个子 agent 分析,按规则表归档进一个私有 Git 仓库,配上 SOP、技能和巡检脚本。Slack 里的 Claude 能读这个仓库,却够不到实验室的机器;跨机器的活最后还是落在笔记本上的 Claude Code 身上。

封面:聊天气泡和文档经过命令行窗口,被分拣进文件柜
图 0:封面,手绘 SVG 示意图(不是截图)。

9 月 5 日晚上,我开始给公司的硬件实验室搭一个知识库。目的很直接:

slack里面我用claude主要是作为实验室的主管master agent。(2026-09-05)

问它设备在哪、怎么连、哪个项目在哪台机器上、某件事按哪个 SOP 走,它要能答,还要能派活。前提是它得有一份能读的资料,而资料散在飞书的群聊、私聊和文档里,机器和账号散在五台设备上。到 9 月 27 日,结果是一个私有 Git 仓库:总览、红线、SOP、技能、项目库;飞书里的项目文档用命令行工具拉出来,交给 15 个子 agent 分析,再按规则表归档进去。Slack 里的 Claude 能读这个仓库,但真正跨机器干活,还是靠我笔记本上的 Claude Code。这篇讲做法和踩过的坑,不涉及具体的公司文档。

仓库的骨架

仓库的结构参考了之前 Slack 里的 Claude 出过的一版方案,我又改了几处。最终是这些东西:

  • CLAUDE.md:主管 agent 的角色、首读清单、红线和干活方式,Claude Code 每次会话自动读,Slack 里的 Claude 克隆仓库后也读。
  • README:网络范围、设备清单、公司项目在哪台机器的哪个目录、各台机器上的 Claude Code 登的是哪个账号。
  • accounts/:登录信息只集中放这一处,代码、日志和聊天里一律不写。
  • docs/lab/:设备清单、库存、实验台账、安全规范、报告模板。设备和库存的编辑面是 Google 表格,仓库里放一份 CSV 快照。
  • sop/:每份固定七段,目的、触发条件、前置、步骤、验证、回滚、记录;做完把偏差写回 SOP。
  • projects/ 与 biz/:前者是硬件实验室自己的项目,每个一个文件夹,放项目卡、决策和归档文档;后者是复用实验室系统的业务项目,只放入口页,文件留在原处。
  • .claude/skills/:13 个技能。6 个 lab- 开头的管库存、设备、台账、报告、SOP 问答和项目入口;4 个基础设施类的管巡检、登录态、新机器接入和生产环境守门;另有 3 个业务类的。

红线大多是我在对话里一条条提出来的,写进去以后 agent 每次都会先读到。比如:电商部门的服务器、数据库和账号一律只读,确实要动,先列清单(动什么、怎么做、能不能回滚、影响谁、谁在哪台机器上执行),等人回「确认」;任何机器的电源和节流设置不许改;换账号由人做,agent 不自己 /login。还有一条是写文档的规矩:改了现实(设备、账号、项目位置),先改仓库,再改别处;每次更新带日期,写清哪些是实测、哪些没核。

飞书:浏览器太慢,换命令行

资料的大头在飞书。第一个办法是接管我已经登录飞书的 Chrome,走远程调试一页页读。问题很多:Chrome 每建一个新的调试连接都弹一次「允许」,Playwright 挂上去会被两百个调试目标拖死,只好自己写了个只挂需要页面的小驱动,常驻、保活,只授权一次;网页版本地缓存里只有三百多条消息;采集还老把 Chrome 弹到前台。现成的飞书机器人用的是应用身份,只能读写被加进去的两张表。我问了一句:

飞书不是有cli工具来着?不行吗(2026-09-06)

换成飞书的命令行工具,用我的用户身份登录:它给出设备码,我事先授权过,agent 自己在后台浏览器里点确认。流水线是这样的:列出所有会话,逐个会话分页拉完消息,转成按日期分节的 Markdown,抽出消息里的文档链接和附件,生成两张清单,再按链接把文档正文抓成 Markdown,表格和多维表格走各自的接口。坑有两个:分页参数默认只翻 10 页、499 条就停,要显式加页数上限;搜索文档和列云盘目录缺权限,就改用消息里出现过的链接当入口。这一轮拉下来 65 个会话、约 1.2 万条消息、316 个链接,抓到 275 份文档正文。

飞书资料变成知识库的流水线
图 1:飞书 → 命令行导出 → 子 agent 分析 → 规则归档 → 仓库,下面是三个使用者。数字是 9 月 6 日那一轮的。

15 个子 agent 和一张规则表

分析分两批:9 个子 agent 读会话转写稿,6 个读文档。它们共用一份说明书(会话、文档各一版),核心几条是:只读本地文件,不联网,因为另一个进程正在抓文档;大文件分段读完,不许抽样跳读;每条事实带出处(会话名加日期时间,或文档标题加章节),拿不准就写「疑似」;遇到口令不抄,只写「口令出现在哪个会话、哪个时间」;报告章节固定,最后附一节「建议放进仓库的哪个目录」。跑到一半撞上了账号的 5 小时额度,被打断的几个等额度重置后续跑。

归档是脚本做的,不是 agent 手搬。一张规则表决定每份文档进哪个目录,脱敏用正则。第一次跑把飞书自己的资源 token 也当密钥抹掉了,看了样本才发现,改完重跑,真正脱敏的只有 4 处。面试、简历、合同不入库,业务部门的日报、销量表只登记不归档。最后 238 份文档进了仓库,316 个链接每一个的去向(归档到哪、只登记、不归档)都写进一份索引。

agent 读得再全,有些事它从聊天记录里判断不出来,当晚是我一条条纠正的:

轴向磁通电机属于个人项目,不属于公司。注意不要搞混了(2026-09-06)

还有:校企合作那件事已经没了;有四样设备讨论过、否决了,没买;采购要求里的「全场景禁 WiFi」,意思是内网优先走有线和光纤。附件我也给了规矩:固件包不用下,各台电脑上都有更新的版本;飞书里的大文件不一定是最新版;最近编辑过的项目需求文档最要紧,要定期同步。后来这条变成了一个每周一 09:00 的计划任务,不调用模型,只拉新消息、重抓已归档文档、有变化就提交。

机器和账号

实验室范围定义成组网里的机器:我的主力笔记本、一台解算服务器、一块 Thor 开发板、一台跑过夜任务的云主机,还有一部手机。每台机器上的 Claude Code 登的账号不一样,而网页端、手机端和 Slack 里的 Claude 都只看得到同一账号下的会话,没法从一个地方指挥所有机器。仓库里定下的办法是:笔记本、服务器和云主机当跳板机,手机和会到处搬的 Thor 不当;跨机的一次性任务在目标机器上无头跑,用它自己的登录,比如

powershell
ssh thor 'cd ~/FOC && claude -p "…" --output-format json'

长任务用后台会话或 tmux,进度写进项目自己的 CLAUDE.md 或 WORKLOG,状态放仓库,不放会话。换账号只能人来做,不做多配置目录隔离。

我会经常换账号,所以每次开工前先跑一遍巡检。一个脚本只读各个命令行工具配置里的身份字段,不输出任何 token;另一个从跳板机 SSH 到每台机器,列出登录账号、版本、后台会话和进程,加了保活和超时,因为有一次经中继的连接卡了 5 分钟才报错。

登录态总表
图 2:9 月 5 日晚上第一次巡检出来的登录态总表,账号一律打码。下面是两个巡检脚本的说明。

Slack 里的 Claude 够不到机器

Slack 里用的是旧版机器人,挂在一个个人订阅账号上。新版要公司的 Claude 组织管理员去后台配一堆东西,当时就先没上。它跑在一个隔离的云沙盒里:能克隆仓库、读 CLAUDE.md、往分支上提交,但不在组网里,SSH 不通,飞书接口返回 403,也没有 Google 凭据。模型也不归仓库管:仓库设置里写的模型对 Slack 发起的会话不生效,Claude Code 在那台云主机上挂了一个守护脚本,看到新会话就给它切模型,第一轮回答仍是默认模型;脚本依赖的登录凭据 8 小时就过期,过期后一直报 401,我决定先不管。

9 月 27 日早上,我在频道里让它「同步一下各个平台上面的项目的进展和知识」,结果它只留下一个没合并的分支:更新了那台云主机的新地址,登记了一个项目目录,标着未核实。下午我在笔记本上让 Claude Code 接手:核对后合并那个分支,再逐台 SSH 采集,发现项目卡都停在 9 月 6 日,一张卡把 demo 的版本号写错了,一个正在做的项目根本没登记,还有一个项目从 8 月 22 日起就没动过。同一天把新版机器人也配上了:工作区管理员在频道里发配对指令,组织后台确认,再连 GitHub。聊天能用了,「代表用户执行」和「访问仓库」两项卡在后台的测试版报错上。所以改仓库、跨机器同步这类活,仍然交给笔记本上的 Claude Code。

谁够得到哪
图 3:Slack 里的 Claude 只够得到仓库;笔记本上的 Claude Code 在组网里,能 SSH 到各台机器;账号和生产环境由人把关。

几条教训

那个每周一的同步任务,到 10 月 5 日一共跑了五次,日志里五次都是同一行:用户身份失效,需要重新登录,然后退出。第一次失败离登录还不到一天,原因到现在还没查。设计时写的是巡检看到会提醒人,可日志里看不出有人重新登录过。依赖用户凭据的自动化,失败得让人在别处看得到,只写进日志,等于没跑。

仓库里的事实过期得很快。项目卡只有三周没更新,就错了好几处,能纠正它的只有真去机器上看一遍。

有些信息只有人知道:哪个项目是个人的、哪件合作已经停了、哪样设备否决过。这些不写进仓库,agent 读再多聊天记录也会归错类。

登录信息只放一个地方;脱敏规则跑完,先抽样看有没有误伤。

// ABOUT THE AUTHOR · TANG
色彩科学(Color Science)专业出身,日常从事软件开发、AI Agent 与嵌入式硬件工程,同时负责科技领域的 VC 金融投资与技术尽职调查(Due Diligence)。习惯用实测数据、第一性原理与可复现的工程细节说话。
← 上一篇 运营要一份竞品红人报告:先查做法,再让 agent 采集和打分 下一篇 → 读 Modos Glider:一个开源电子纸控制器,和我那块六色屏差在哪