LobsterGraph:企业级飞书桌面智能体设计方案

0 评论 810 浏览 0 收藏 9 分钟

最近不是moltbot项目大火吗,业务部门也跟风,给我们提了一个类似的需求,我们结合目前公司的实际情况写了一个方案。

1. 项目愿景 (Executive Summary)

本项目旨在构建一个驻留在办公电脑里的数字员工。即使你身处异地(Machine A),只需通过飞书发送自然语言指令,办公室内网电脑(Machine B)上的智能体就会自动唤醒,代替人工完成操作(如查数据、跑代码、发文件),并将结果实时回传到你的手机或电脑上。

核心价值:

  1. 零内网穿透: 利用飞书官方长连接技术,无需申请公网 IP,无需配置防火墙,内网机器即插即用。
  2. 安全可控: 只有授权员工(白名单)可指挥,敏感操作需飞书卡片二次确认。
  3. 能力无限: 基于“技能插件”架构,今天学会重启服务,明天就能学会自动报税,开发成本极低。

2. 业务场景演练 (User Stories)

场景一:远程运维与调试

现状: 开发人员小王在家办公,需要查看公司内网测试机(Machine B)的报错日志。通常需要 VPN + 远程桌面,卡顿且繁琐。

Lobster 方案:

  1. 小王在飞书对机器人说:“查一下 B 机服务为什么挂了,把最后 50 行 Error Log 发给我。”
  2. Machine B 上的智能体自动执行 tail -n 50 error.log。
  3. 智能体分析日志,回复:“发现数据库连接超时”,并将日志文件发送到飞书聊天窗。

场景二:自动化业务报表

现状: 财务需要在内网 ERP 系统导出数据,手动整理 Excel 发给老板。

Lobster 方案:

  1. 财务在飞书说:“生成本周销售报表。”
  2. 智能体调用 Python 脚本从数据库拉取数据,生成 Excel,生成图表。
  3. 智能体通过飞书发送 Excel 文件,并附带一张“销售趋势图”的图片。

3. 系统技术架构 (System Architecture)

我们要构建的是一个 “单机自治 (Standalone)” 架构。机器 B 既是执行者(Hand),也是思考者(Brain)。

3.1 拓扑结构图

3.2 关键技术栈

通信层: lark-oapi (WebSocket Mode) – 解决内网穿透问题。

大脑层: LangGraph + LangChain – 负责任务拆解、工具路由。

模型层: OpenAI / Claude / DeepSeek (通过 API 调用)。

定义层: Markdown + YAML – 定义技能契约。

4. 详细设计与实现 (Implementation Details)

4.1 项目目录结构 (Standard Structure)

为了支持业务人员和开发人员协作,采用“文档即代码”的结构。

Lobster/

├── core/

│ ├── bot.py # 飞书 WS 监听入口 (Main Loop)

│ ├── graph.py # LangGraph 状态机 (The Brain)

│ ├── registry.py # 技能索引构建 (The Librarian)

│ └── loader.py # 技能动态加载器 (The Builder)

├── skills/ # 技能插件目录 (可无限扩展)

│ ├── system_ops/

│ │ ├── screen_capture/

│ │ │ ├── skill.md # 技能说明书 (给LLM看)

│ │ │ └── implementation.py # Python代码 (给机器跑)

│ │ └── …

│ └── office_ops/

│ └── …

└── main.py # 启动脚本

4.2 技能定义协议 (Skill Protocol)

每个技能由 skill.md 定义,包含 元数据 (YAML)使用说明 (Markdown)

**文件: skills/system_ops/screen_capture/skill.md**

name: “screen_capture” # 函数名

description: “截取当前电脑屏幕” # 简短描述 (用于路由)

os: [“windows”, “linux”] # 兼容性白名单

permissions: [“admin”] # 权限等级

# Screen Capture

## 用途

当用户询问“电脑现在在运行什么”或“截个图”时调用。

## 参数

| 参数名 | 类型 | 必填 | 默认值 | 描述 |

| :–

– | :–

– | :–

– | :–

– | :–

– |

| `save_

path` | string | No | `tmp.png` | 图片保存路径 |

## 示例

User: “看看屏幕”

Call: {“save_path”: “desktop.png”}

4.3 核心工作流 (Workflow Logic)

  1. 初始化 (Startup):

registry.py 扫描 skills/ 文件夹,只读取 .md 头部信息,建立轻量级索引。

监听 (Listening):

bot.py 通过 WebSocket 收到 Machine A 发来的消息:”把 D 盘日志发我”。

路由 (Routing):

LangGraph 根据用户指令,在索引中检索,发现 file_transfer 技能最匹配。

加载 (Hydration):

loader.py 此时才去读取该技能的完整 Markdown 和 Python 代码,动态注入 LLM 上下文。

执行 (Execution):

智能体执行 Python 函数,读取文件。

响应 (Response):

调用飞书 API 将文件上传并发送给 User。

5. 安全与权限设计 (Security)

由于智能体运行在内网核心机器上,安全是第一要素。

5.1 身份白名单 (Identity Allowlist)

在 core/bot.py 中强制校验发送者的 OpenID。

ALLOWED_USERS = [“ou_287318…”, “ou_99812…”]

def on_message(data):

if data.sender_id not in ALLOWED_USERS:

return send_reply(” 非法入侵:您的身份未授权!”)

5.2 敏感操作二次确认 (Human-in-the-loop)

对于删除文件、重启系统、发送邮件等高危操作,智能体禁止直接执行。必须发送飞书交互卡片,等待用户点击“批准”。

交互流程:

  1. 用户: “重启服务器”
  2. Bot: 发送卡片 [⚠️ 危险操作确认: 重启] [ 确认重启] [⚪ 取消]
  3. 用户: 点击 [ 确认重启]
  4. Bot: 收到回调事件 -> 执行 reboot。

6. 项目路线图 (Roadmap)

阶段一 (MVP):

完成飞书 WebSocket 对接。

实现基础技能:CMD 命令执行、文件读取、屏幕截图。

交付物: 能通过飞书聊天的内网机器人。

阶段二 (Office 增强):

接入飞书日历、多维表格 API。

实现“Lazy Loading”按需加载架构,支持 50+ 技能。

交付物: 具备办公能力的数字员工。

阶段三 (生态化):

开放 skills 目录规范,允许业务部门自行编写 .md 和 .py 扩展能力。

交付物: 企业内部的智能体应用商店。

本文由 @天涯轩 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!