拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Codex 接入飞书

Codex 接入飞书全栈指南CLI、WebSocket、SDK 与机器人Windows / macOS 保姆级完整教程适合读者飞书开放平台接入 Codex 的用户。运行环境Windows 10/11PowerShell、macOSTerminal / zsh、Node.js LTS、飞书国内版、Codex CLI/SDK。阅读约定本文每个操作都会先给出 Windows 命令紧跟一个「macOS」小节给出对应的 Mac 命令。两边命令等价按你自己的系统选其一即可。完成本文后你可以在 Codex 中说“读取我今天的飞书日程”让 Codex 通过lark-cli获取数据在飞书中直接给自己的机器人发消息并由 Codex 生成回答继续扩展飞书文档、知识库、表格和任务等能力。一、先理解其实有两种“接入”很多教程会把两种需求混在一起导致初学者越配置越乱。这里先明确两种模式的区别。模式 ACodex 访问飞书入口仍然是 Codex App 或 Codex CLI。你可以对 Codex 说读取我今天的飞书日程只读取不修改。执行链路Codex → lark-cli → 飞书 OpenAPI → 返回日程、文档或消息适合场景读取个人日历搜索和总结飞书文档操作多维表格、任务和消息让 Codex 处理飞书中的工作数据。模式 B在飞书里直接聊天入口是飞书客户端。你可以给机器人发送你好你是谁执行链路飞书消息 → 本地 Node.js 机器人 → Codex SDK → 回答发送回飞书适合场景在飞书私聊中直接使用 Codex为团队搭建内部智能助手后续增加/doc、/calendar、/task等命令。本文会同时介绍两种模式。建议严格按顺序操作先完成模式 A再完成模式 B。二、准备工作2.1 需要准备什么一台 Windows 电脑 或 一台 macOS 电脑macOS 12 Monterey 及以上更省心一个可正常使用的飞书账号能进入飞书开放平台开发者后台可用的 ChatGPT/Codex 账号能访问飞书和 OpenAI 的网络约 3060 分钟。2.2 安装 Node.jsWindows进入 Node.js 官方下载页面选择 LTS 长期支持版安装。安装完成后打开 PowerShell按键盘Win键搜索PowerShell打开 Windows PowerShell执行以下命令node-v npm-v两条命令都能输出版本号就说明安装成功。如果提示“不是内部或外部命令”请关闭 PowerShell 后重新打开。仍然无效时重新安装 Node.js并确认安装器已勾选将 Node.js 加入PATH。2.2 安装 Node.jsmacOSmacOS 有两种常见安装方式任选其一。方式 1官方安装包最简单进入 Node.js 官方下载页面下载 macOS 的.pkg安装包双击安装一路下一步。安装器会自动把 Node.js 加入PATH。方式 2用 Homebrew推荐给后续要长期折腾的用户如果还没装 Homebrew先在终端执行建议先到 brew.sh 确认官方安装命令/bin/bash-c$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)然后安装 Node.jsbrewinstallnode打开终端的方式Command (⌘) 空格呼出聚焦搜索输入Terminal或终端回车打开「终端 / Terminal」应用。安装完成后验证node-vnpm-v提示用 Homebrew 装的 Node.js全局命令会放在 Homebrew 目录Apple Silicon 是/opt/homebrew/binIntel 是/usr/local/bin这两个路径默认就在PATH里后续装全局包通常不需要sudo比较省心。2.3 关于 shell 的小知识Windows 本文统一用PowerShellmacOS 默认 shell 是zsh终端里粘贴的命令以bash/zsh语法为准Windows 用powershell语法两边语义等价的命令下文会成对给出不必两套都执行。三、模式 A让 Codex 读取飞书日程和文档3.1 安装飞书官方 CLI在 PowerShell 中执行npx larksuite/clilatest install第一次运行时可能看到Need to install the following packages: larksuite/cli... Ok to proceed? (y)输入y并回车。安装完成后检查版本lark-cli--version如果提示找不到lark-cli请关闭 PowerShell 后重新打开。也可以直接运行$env:APPDATA\npm\lark-cli.cmd--versionmacOS在终端执行同样的命令npx larksuite/clilatestinstall同样输入y确认安装。检查版本lark-cli--version如果提示找不到lark-cli先确认全局命令目录是否在PATH中# 查看 npm 全局 bin 目录npmconfig get prefix# 通常是 /opt/homebrewApple Silicon或 /usr/localIntelbin 子目录需在 PATH 中也可以直接用完整路径调用$(npmconfig get prefix)/bin/lark-cli--version技巧如果你只是偶尔用一次直接用npx larksuite/clilatest --version也可以npx会临时下载并运行。3.2 配置飞书应用执行lark-cliconfig init--new终端会显示二维码或授权链接。打开链接用飞书账号确认创建或配置应用。成功后会看到类似提示OK应用配置成功macOS命令完全一样lark-cli config init--new终端里若显示二维码可直接在飞书 App 里扫码若是链接Command (⌘) 点击终端里的链接即可在默认浏览器打开。3.3 用户登录授权执行lark-cliauth login--recommend根据终端中的链接完成授权然后检查lark-cliauth status用户授权后CLI 可以以你的飞书用户身份访问你有权查看的日历、文档和消息。macOS命令一致lark-cli auth login--recommendlark-cli auth status3.4 测试读取日历运行lark-clicalendaragenda第一次运行可能提示缺少权限{ok:false,error:{subtype:missing_scope,missing_scopes:[calendar:calendar.event:read]}}这不是安装失败而是缺少日历读取权限。根据错误中的 scope 补充授权lark-cliauth login--scopecalendar:calendar.event:read在浏览器中同意后检查权限lark-cliauth check--scopecalendar:calendar.event:read成功结果应包含{granted:[calendar:calendar.event:read],missing:null,ok:true}再次执行lark-clicalendaragenda如果返回{ok:true,data:[]}说明命令执行成功只是今天没有日程并不是报错。macOS所有命令一字不差把powershell换成bash即可lark-cli calendar agenda lark-cli auth login--scopecalendar:calendar.event:readlark-cli auth check--scopecalendar:calendar.event:read3.5 创建一个测试日程打开飞书客户端点击左侧“日历”点击今天尚未过去的时间段标题填写“Codex 测试日程”时间设置为 30 分钟保存。回到 PowerShell或终端再次执行lark-cli calendar agenda这次应看到summary日程标题start_time开始时间end_time结束时间count日程数量。至此飞书 CLI 已经可以读取你的飞书数据。3.6 以后如何申请其他权限推荐按业务域申请授权# 日历lark-cliauth login--domain calendar# 文档lark-cliauth login--domain docs# 日历 文档 任务lark-cliauth login--domain calendar,docs,task查看当前状态lark-cliauth status检查指定权限lark-cliauth check--scope某个具体 scope遇到missing_scope时应先查看错误中的missing_scopes不要为了省事一次开通所有权限。macOS命令相同直接在终端执行即可。四、让 Codex App 正常调用 lark-cli4.1 为什么要选择一个空文件夹Codex App 中的“项目”本质上是一个本地工作目录。即使你只是读取飞书日程也建议新建一个空文件夹。Windows 示例路径C:\Codex-Feishu也可以放在桌面C:\Users\你的用户名\Desktop\Codex-FeishumacOS 示例路径~/Codex-Feishu也可以放在桌面~/Desktop/Codex-Feishu在终端里创建并进入mkdir-p~/Codex-Feishucd~/Codex-Feishu这个空文件夹不会存放你的飞书日程它只是为 Codex 提供一个安全、隔离的运行目录。4.2 在 Codex App 中选择项目打开 Codex App点击Choose project选择刚才创建的空文件夹。4.3 设置审批方式在输入框左下角找到“请求批准”下拉菜单。初次使用选择“请求批准”频繁执行低风险命令可选择“替我审批”不建议为了省事长期授予无限制系统权限。4.4 使用完整路径调用 lark-cliWindows把下面的内容发给 Codex请执行以下只读命令 $env:APPDATA\npm\lark-cli.cmd calendar agenda 读取我今天的飞书日程不创建、修改或删除任何内容。使用完整路径有两个好处避免 Codex 找不到命令别名避免中文 Windows 用户名造成路径识别问题。4.4 使用完整路径调用 lark-climacOS在 macOS 上全局命令通常已在PATH中可以直接让 Codex 调用请执行以下只读命令 lark-cli calendar agenda 读取我今天的飞书日程不创建、修改或删除任何内容。如果 Codex 报告找不到lark-cli改用完整路径请执行以下只读命令 $(npm config get prefix)/bin/lark-cli calendar agenda 读取我今天的飞书日程不创建、修改或删除任何内容。macOS 上用户名一般为英文路径识别问题较少但仍建议在不确定时使用完整路径行为更可预测。成功后Codex 会读取并整理日程。以后可以直接说使用飞书 CLI 读取我明天的日程按时间顺序整理不要修改任何内容。或者使用飞书 CLI 搜索我最近修改的飞书文档只列标题和更新时间。注意“Codex 能访问飞书”不等于“飞书里已经有 Codex 机器人”。下一部分才是把 Codex 放进飞书聊天窗口。五、模式 B在飞书里创建 Codex 聊天机器人本节操作几乎都在飞书开放平台网页后台完成Windows 与 macOS 没有区别因此只写一遍。5.1 打开飞书开放平台进入飞书开放平台开发者后台打开刚才配置的自建应用。5.2 添加机器人能力在左侧进入应用能力 → 添加应用能力 → 机器人添加成功后左侧“机器人”会高亮页面会出现机器人配置。5.3 开通消息权限进入开发配置 → 权限管理至少需要以下权限im:message:send_as_bot用途允许机器人发送消息。im:message.p2p_msg:readonly用途接收用户发给机器人的单聊消息。如果需要在群聊中机器人再添加im:message.group_at_msg:readonly飞书后台的中文名称可能随版本调整可直接搜索权限代码或关键词。部分后台会把权限合并为“获取与发送单聊、群组消息”等组合权限以实际页面为准。5.4 添加消息事件进入开发配置 → 事件与回调后续需要添加im.message.receive_v1也就是“接收消息”事件。先不要急着保存长连接订阅方式我们先在本机启动机器人程序。5.5 设置可用范围进入版本或应用发布配置将可用范围设置为你自己。个人测试时建议仅包含你本人关闭“允许机器人被添加到外部群”关闭“允许外部用户与机器人单聊”。六、先做一个回声机器人验证飞书通道为什么不直接接入 Codex因为排错时需要把问题拆开飞书能否把消息推送到电脑电脑能否回复飞书Codex 能否生成回答。先做回声机器人可以证明前两项正常。6.1 创建项目文件夹Windows例如在桌面新建Feishu-Codex-Bot进入该文件夹在资源管理器顶部地址栏输入powershell回车后PowerShell 会自动在当前文件夹打开。你会看到类似PS C:\Users\你的用户名\Desktop\Feishu-Codex-Bot6.1 创建项目文件夹macOS在终端里mkdir-p~/Desktop/Feishu-Codex-Botcd~/Desktop/Feishu-Codex-Bot也可以在 Finder 里进入桌面新建文件夹后右键文件夹选择“新建位于文件夹位置的终端窗口”如没有该菜单项可在「系统设置 → 键盘 → 快捷键 → 服务」里勾选「新建位于文件夹位置的终端标签页 / 窗口」。6.2 准备示例项目项目结构如下sample-bot/ ├─ package.json ├─ .env.example ├─ .gitignore ├─ start-bot.bat # Windows 启动脚本 ├─ start-bot.sh # macOS/Linux 启动脚本 └─ src/ └─ index.js进入项目目录后安装依赖Windows / macOS 命令相同npm install如果手头没有示例项目也可以把附录 A 的提示词交给 Codex让它在空文件夹中创建一个最小可运行的回声机器人记得提示它同时生成.bat和.sh两个启动脚本。6.3 创建.envWindows执行Copy-Item.env.example.env notepad.env填写LARK_APP_ID你的App ID LARK_APP_SECRET你的App Secret ALLOWED_OPEN_ID你的Open ID CODEX_MODEL CODEX_TIMEOUT_MS120000App ID 和 App Secret 位于飞书开放平台的“凭证与基础信息”页面。Open ID 可以通过以下命令查询lark-cliauth status在输出中寻找以ou_开头的用户 ID。安全提醒不要截图.env。App Secret、Token 和 Codex 登录凭据都不应出现在博客、聊天、GitHub 或工单中。确认.gitignore至少包含.env node_modules/6.3 创建.envmacOS执行cp.env.example .envnano.env# 或用 open -e .env 调用“文本编辑”也可用 code .env 调用 VS Code填入与 Windows 完全相同的内容LARK_APP_ID你的App ID LARK_APP_SECRET你的App Secret ALLOWED_OPEN_ID你的Open ID CODEX_MODEL CODEX_TIMEOUT_MS120000查询 Open IDlark-cli auth status在输出中寻找以ou_开头的用户 ID。6.4 先启动程序Windows执行npm run dev看到类似下面的提示说明程序已经开始连接正在建立飞书 WebSocket 长连接。这个窗口需要保持开启。6.4 先启动程序macOS命令完全一样npmrun dev保持终端窗口开启即可。若想让进程在关闭终端后继续运行可使用tmux或screen但初期调试不建议关掉终端就停正好便于排错。6.5 回到飞书后台配置长连接进入事件与回调 → 事件配置选择使用长连接接收事件保存然后添加事件im.message.receive_v1长连接模式的优点本地电脑即可接收事件不需要公网 IP不需要域名不需要内网穿透。macOS 用户注意长连接是出站连接通常不会被系统防火墙拦截。若第一次连接失败检查是否开启了阻断出站连接的第三方安全软件。6.6 发布应用进入版本管理与发布 → 创建版本更新说明可以填写新增机器人消息接收与回复能力提交并发布确保可用范围包含你本人。6.7 测试回声在飞书中搜索机器人并发送你好回声机器人应回复收到你好收到回复说明以下链路已经打通飞书消息 → im.message.receive_v1 → WebSocket 长连接 → 本地 Node.js 程序 → 飞书发送消息 API → 回复出现在飞书七、把回声机器人升级为真正的 Codex 机器人7.1 安装 Codex CLIWindows在项目文件夹的 PowerShell 中执行npm install-g openai/codex然后运行codex首次运行会提示登录。选择使用 ChatGPT 账号登录并在浏览器中完成授权。出现 Codex 交互界面后按Ctrl C退出。登录状态通常会缓存在本地重启电脑后一般不需要重新登录。7.1 安装 Codex CLImacOS在项目目录的终端里执行npminstall-gopenai/codex然后运行codex首次运行会提示登录。选择使用 ChatGPT 账号登录浏览器会自动打开如没有复制终端里的链接到浏览器。完成授权后回到终端按Ctrl C退出交互界面。权限提示用 Homebrew 安装的 Node.js全局目录在你的用户可写范围内不需要sudo。若你是用官方.pkg安装的 Node.js全局安装可能需要sudo npm install -g ...更推荐的做法是改用 Homebrew或在~/.npmrc里设置自定义prefix避免sudo。7.2 安装 Codex SDK如果示例项目的package.json已包含 SDK执行npm install检查 JavaScript 语法npm run checkmacOS命令相同npminstallnpmrun check7.3 核心代码说明一个相对完整的机器人应实现飞书 WebSocket 长连接im.message.receive_v1事件监听ALLOWED_OPEN_ID白名单消息去重忽略机器人自身消息每个chat_id使用独立 Codex Thread/status和/clear命令长回答自动分段同一会话串行处理Codexread-only沙箱approvalPolicy: never从 Codex 子进程环境中移除飞书密钥错误信息脱敏。最核心的 Codex 调用只有几行import{Codex}fromopenai/codex-sdk;constcodexnewCodex();constthreadcodex.startThread({workingDirectory:process.cwd(),skipGitRepoCheck:true,sandboxMode:read-only,approvalPolicy:never,});constturnawaitthread.run(你好你是谁);console.log(turn.finalResponse);同一个 Thread 再次调用run()就可以延续对话上下文。跨平台提示process.cwd()、skipGitRepoCheck、sandboxMode、approvalPolicy在 Windows 与 macOS 行为一致无需区分系统。7.4 为什么事件处理器不能一直等待 Codex飞书长连接事件处理有时限。Codex 生成回答可能需要几十秒如果在事件回调中一直等待thread.run()飞书可能认为处理超时并重新推送事件。因此应采用类似下面的处理方式voidenqueue(chatId,()handleUserText(chatId,text));return{};处理逻辑是收到事件后立即登记去重把任务放入队列立刻结束事件处理在后台调用 Codex最后通过飞书发送消息接口回复。这是避免重复回复和事件超时的关键。7.5 启动机器人Windows如果旧程序正在运行先按Ctrl C然后启动npmstart保持窗口开启。7.5 启动机器人macOS命令相同在终端里npmstart保持终端窗口开启。7.6 在飞书中测试先发送/status应看到类似回复飞书长连接正常Codex SDK 已初始化。再发送你好你是谁正常情况下机器人会先回复正在处理请稍候……随后返回 Codex 的回答。可以继续测试上下文给我解释什么是地震反演。等机器人回答后再发送用更简单的话再解释一遍。如果机器人知道“再解释一遍”指的是上一条内容就说明 Thread 连续对话正常。清除上下文/clear7.7 为什么回复比直接使用 ChatGPT 慢当前链路比直接聊天多了几个环节飞书 → 本地机器人 → Codex CLI 子进程 → 模型推理 → 本地机器人 → 飞书而且 Codex 是偏工程任务的 Agent会进行更多上下文和工具准备。提速建议一次只发一条消息等待回复后再发下一条简短问题使用更轻量的模型不要让同一个chat_id同时执行多个任务保留“正在处理”的提示设置超时不需要文件分析时保持只读并禁用额外工具。八、可选增强读取并分析飞书文档8.1 先在终端中测试文档读取先查看当前版本的命令帮助Windows / macOS 通用lark-cli docs fetch --help常见用法类似lark-cli docs fetch --doc 飞书文档链接 --as user --format pretty由于 CLI 更新较快请以本机--help展示的参数为准。如果缺少权限根据错误中的missing_scopes重新授权。8.2 在飞书机器人中设计/doc理想用法/doc https://你的租户.feishu.cn/docx/xxxxx 请总结核心结论并指出三处逻辑问题。安全实现必须做到只允许合法的飞书/Lark 域名使用execFile或spawn调用 CLI禁止把用户输入拼接成任意 shell 命令只读不更新原文档不把完整文档写入日志长文档分块总结缺少权限时明确返回 scope为读取和分析设置超时。跨平台提示execFile/spawn在 Windows 上需要正确处理.cmd后缀如lark-cli.cmd和路径带空格的情况在 macOS 上lark-cli通常是无后缀的可执行脚本且位于PATH中。建议代码里通过process.platform win32判断分别传不同的可执行文件名避免在 Mac 上误调.cmd。8.3 可直接交给 Codex 的升级提示词请在当前飞书 Codex 机器人中增加“读取飞书文档并分析”的功能。 要求 1. 保留现有长连接、Codex Thread、白名单、去重、/status、/clear。 2. 支持 /doc 飞书文档链接 分析要求。 3. 普通消息包含飞书 docx/docs/wiki 链接时也自动识别。 4. 先实际运行 lark-cli docs fetch --help以本机版本真实参数为准。 5. Node.js 调用 lark-cli 必须使用 execFile 或 spawn禁止 shell 拼接。 6. 仅允许合法飞书/Lark 文档域名防止命令注入。 7. 跨平台根据 process.platform 在 Windows 调用 lark-cli.cmd、在 macOS/Linux 调用 lark-cli并正确处理带空格的路径。 8. 长文档先分块读取要点再生成整体分析不要只截取开头。 9. 缺权限时回复缺少的 scope。 10. 不输出正文到控制台不输出 .env、Token、App Secret。 11. 完成后做语法检查不启动程序。九、电脑重启后如何恢复正常情况下不需要重新执行以下操作安装 Node.js安装lark-cli创建飞书应用配置权限和事件发布应用填写.env登录 Codex。9.1 每次开机后的启动步骤Windows打开机器人项目文件夹在地址栏输入powershell执行npmstart保持 PowerShell 窗口开启在飞书中发送/status也可以双击示例项目中的start-bot.bat9.1 每次开机后的启动步骤macOS打开「终端」进入项目目录cd~/Desktop/Feishu-Codex-Bot执行npmstart保持终端窗口开启在飞书中发送/status验证。也可以双击项目里的启动脚本start-bot.sh首次使用前需要赋予执行权限仅一次chmodx start-bot.sh# 以后双击或在终端执行 ./start-bot.sh如果 Finder 双击.sh打开的是文本编辑器可右键 → 打开方式 → 终端或在「终端」偏好设置里把.sh关联到终端。9.2 如果 Codex 登录失效执行codex按提示重新登录。成功后按Ctrl C退出再运行npm startmacOS 同理在终端运行codex完成登录后Ctrl C退出再npm start。9.3 如果机器人突然不回复在运行窗口按Ctrl C然后重新执行npm start9.4 电脑休眠的影响电脑关机、睡眠、休眠或断网时本地 WebSocket 长连接会断开机器人也会离线。如果需要全天在线应把项目部署到长期运行的主机或服务器。部署到公网服务器时需要重新评估登录凭据、权限、日志和密钥存储方式不要直接照搬个人电脑配置。macOS 补充Mac 默认合盖即睡眠会断开长连接。可在「系统设置 → 电池 / 显示器」里调整睡眠策略或使用caffeinate -s命令临时阻止休眠仅调试期间建议长期请部署到服务器。注意仅防止休眠不能解决断网网络波动仍会重连。附录可直接复制给 Codex 的提示词以下提示词已更新为跨平台版本提示 Codex 同时考虑 Windows 与 macOS。A. 让 Codex 创建回声机器人请在当前空文件夹中创建一个最小可运行的飞书长连接回声机器人。 要求 1. 使用 Node.js 和 JavaScript。 2. 使用官方 larksuiteoapi/node-sdk。 3. 使用 WebSocket 长连接不用 Webhook不需要公网服务器。 4. 监听 im.message.receive_v1。 5. 只处理文本消息。 6. 收到私聊后回复“收到用户原消息”。 7. 忽略机器人自身消息防止循环。 8. 使用 message_id 去重。 9. 支持 ALLOWED_OPEN_ID 白名单。 10. 使用 dotenv 读取 LARK_APP_ID、LARK_APP_SECRET、ALLOWED_OPEN_ID。 11. 创建 package.json、src/index.js、.env.example、.gitignore、README.md。 12. 同时提供 Windows 的 start-bot.bat 和 macOS/Linux 的 start-bot.sh.sh 需在说明里提示 chmod x。 13. 不在日志中输出 App Secret、Token 或完整消息。 14. 自动 npm install 和语法检查。 15. 不读取或填写真实密钥不启动程序。B. 将回声机器人升级为 Codex当前飞书回声机器人已经测试成功。 请升级为 Codex 智能机器人 1. 安装并使用官方 openai/codex-sdk。 2. 普通私聊文本提交给 Codex最终回答回复到原聊天。 3. 每个 chat_id 维护独立 Thread。 4. 支持 /clear 与 /status。 5. 保留白名单、自身消息过滤、message_id 去重。 6. 长回答自动分段。 7. 同一 chat_id 串行处理禁止上下文并发错乱。 8. 收到普通消息后立即回复“正在处理请稍候……”。 9. 单次 Codex 调用设置 120 秒超时。 10. 使用 read-only 沙箱、approvalPolicy never、skipGitRepoCheck true。 11. Codex 子进程继承系统环境但移除 LARK_APP_ID、LARK_APP_SECRET、ALLOWED_OPEN_ID。 12. 跨平台处理 Codex 子进程环境变量Windows 保留 PATH、USERPROFILE、HOME、APPDATA、LOCALAPPDATA、TEMP、TMP、SYSTEMROOT、COMSPECmacOS/Linux 保留 PATH、HOME、TMPDIR、USER、SHELL、LANG、LC_ALL。 13. 不输出 .env、Token、App Secret。 14. 完成后语法检查不启动程序。C. 排查“/status正常普通消息没反应”飞书能够正常回复 /status但普通消息调用 Codex 后没有响应。 请检查并修复 1. thread.run() 前后记录脱敏日志。 2. 立即回复“正在处理请稍候……”。 3. 使用 turn.finalResponse 作为最终文本。 4. Codex env 从 process.env 复制只删除飞书密钥。 5. 跨平台保留必要环境变量 - WindowsPATH、USERPROFILE、HOME、APPDATA、LOCALAPPDATA、TEMP、TMP、SYSTEMROOT、COMSPEC。 - macOS/LinuxPATH、HOME、TMPDIR、USER、SHELL、LANG、LC_ALL。 6. 增加 120 秒超时超时必须回复用户。 7. 保留 read-only、approvalPolicy never、白名单、消息去重。 8. 事件回调快速返回Codex 调用放到后台队列。 9. 完成后语法检查不启动程序。D. 跨平台路径与可执行文件处理新增请把机器人代码中所有调用 lark-cli 的地方改为跨平台安全实现 1. 通过 process.platform win32 判断系统。 2. Windows 下调用 lark-cli.cmd或完整路径 $env:APPDATA\npm\lark-cli.cmd。 3. macOS/Linux 下调用 lark-cli优先 PATH必要时用 $(npm config get prefix)/bin/lark-cli。 4. 统一使用 execFile / spawn禁止 shell: true 拼接命令。 5. 路径带空格或中文时使用引号包裹且对 spawn 的参数以数组形式传入。 6. 保留只读、超时、白名单、去重等既有逻辑。 7. 完成后语法检查不启动程序。官方资料OpenAI Codex CLIOpenAI Codex 身份验证OpenAI Codex SDK飞书官方 CLI飞书 Node.js SDKNode.js 下载HomebrewmacOS 包管理器结语完成本文后你得到的不只是一个“会聊天的飞书机器人”而是一个可以继续扩展的本地 Agent 通道飞书负责入口与协作 Node.js 负责连接和权限边界 Codex 负责理解、推理与任务执行 lark-cli 负责读取和操作飞书数据建议先保持私聊、白名单和只读。运行稳定后再逐步增加文档读取、日历汇总、任务摘要和多维表格能力。不要一开始就开满权限也不要把高权限机器人直接放入大群。无论你用的是 Windows 还是 macOS核心链路与安全原则是一致的先把通道跑通、再用回声验证、最后再接入 Codex分步排错最省心。建议标签Codex、飞书、WebSocket、Node.js、AI 机器人、Windows、macOS
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门