它解决的是什么问题
团队里总有一个人知道「这个功能是怎么实现的」,其他人只能问他。数据分析师想确认某个指标有没有过滤已删除的用户,产品想知道某个图表背后调的是哪个接口,测试想在没有上下文的情况下复现一个 bug。这些问题飞书原生的 AI 助手答不了,因为它看不到你的代码。
一个在你真实仓库里运行的 Claude Code 可以。Larkway 做的事只有一件:让这个 Claude Code 常驻在你的机器上,并且能被飞书里的任何人 @ 到。
准备条件
- Node.js 20+。
- Claude Code 已安装且已登录。在终端跑一次
claude完成登录即可,Larkway 直接复用这个登录态,不注入 API key。 - lark-cli,飞书的命令行客户端,负责长连接和收发消息。
larkway doctor会检查并提示安装。 - git 和 gh,如果你想让 bot 开 PR。只读答疑的 bot 可以不装。GitLab 仓库用
glab。 - 一台常开的机器。bridge 要持续在线才能收到飞书事件,经常合盖休眠的笔记本会漏消息,台式机或小服务器更合适。
四步跑起来
# 1. 全局安装 $ npm i -g larkway # 2. 体检:Node、claude 登录态、lark-cli、git/gh 逐项检查 $ larkway doctor # 缺什么会列出来;--fix 能自动修一部分 # 3. 注册飞书应用 + 配第一个 bot(扫码 → 命名 → 选 claude 后端) $ larkway init # 4. 启动 bridge,长驻后台 $ larkway start ✓ bridge online · 飞书已连接
第三步是唯一需要你本人动手的地方:飞书要求本人扫码授权创建应用,agent 代替不了。扫完码之后,向导会让你给 bot 起名字、选后端,这里选 claude。
然后到飞书群里:群设置 → 群机器人 → 添加机器人 → 选你的 bot。从这一刻起,群里任何人 @ 它,都会在你机器上起一个 Claude Code 会话。
没有浏览器的服务器环境用 larkway init 走 CLI 向导;有浏览器的话直接跑不带参数的 larkway,会打开本地网页管理面,扫码、建 bot、编辑 memory、看日志都在里面。
第一次 @ 它
retention.ts 第 47 行:deleted_at IS NULL 过滤在聚合窗口之前生效,已删除用户被排除在外。
相关调用链:metrics/retention.ts → lib/cohort.ts。
回答里的文件名和行号是它真的去仓库里读出来的,不是猜的。同一个话题里继续追问,会续接同一个 Claude Code 会话,它记得上文。
一个 bot 由三层定义
跑起来之后,你会想让它「知道自己是谁、能碰什么」。Larkway 把一个 bot 拆成三层,各放各的地方:
| 层 | 是什么 | 放哪 |
|---|---|---|
| L1 权限 | 飞书应用凭据的环境变量名、允许的群、repo 指针、token scope | ~/.larkway/bots/<id>.yaml |
| L2 职能 memory | 「我是谁、禁止什么、去哪找规范」,很薄 | ~/.larkway/bots/<id>.memory.md |
| L3 工作流 | 怎么开发、怎么测、怎么提交、什么时候停下问人 | 业务 repo 的 AGENTS.md / CLAUDE.md / .claude/skills |
密钥只存在本机 ~/.larkway/.env,权限 0600;yaml 和 memory 里只有环境变量名。所以配置和 memory 可以放心分享给同事,拿到也跑不了你的 bot。
一段最小的 L2 memory 大概长这样:
# 研发助手
你是团队的研发答疑 bot。被 @ 后先用 lark-cli 拉话题上下文,
再去仓库里读真实代码回答,引用文件名和行号。
## 不做
- 不改代码、不开 PR(那是另一个 bot 的事)
- 拿不准的地方说「没找到」,不猜
具体流程规范不写在这里,写在业务仓库的 CLAUDE.md 和 skills 里。这样流程变了改仓库就行,不用碰 Larkway。
几个常见问题
会扣我的 API 额度吗?
不会。子进程继承你本机 Claude Code 的登录态,走的是你已有的订阅。Larkway 不注入 ANTHROPIC_API_KEY。
代码会不会传到哪里去?
不会。Claude Code 在你自己的机器上运行,Larkway 和飞书之间只传消息和卡片。
要开公网端口吗?
不用。飞书事件通过 WebSocket 长连接推送,机器能出网就行。
能同时跑几个 bot?
一个 bridge 可以跑多个 bot,比如一个只读答疑的、一个能改代码开 PR 的,各有各的三层定义。但同一个飞书应用只能在一处 larkway start,别在本地和服务器同时跑同一个 bot。
Codex 也可以吗?
可以,建 bot 时后端选 codex。怎么选见 《Claude Code 还是 Codex?作为飞书 Agent 后端怎么选》。
下一步
- 用
larkway ui打开管理面,给 bot 编辑 memory、看实时日志。 - 在业务仓库里写
CLAUDE.md,告诉它你们的开发和提交规范。 - 想在手机上远程调度一群 agent,看 《用手机飞书指挥电脑上的一群 Agent》。
- 遇到问题来 交流群。