Skip to content

kexul/pi_feishu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feishu/Lark Integration for pi

这个扩展让 pi 能够连接飞书,接收和发送消息。

功能

  • WebSocket 长连接: 无需公网 IP,通过 WebSocket 接收飞书消息
  • 自动回复: LLM 响应完成后自动发送到飞书,无需工具调用
  • 富消息支持: 支持文本、Markdown 卡片

安装

# 进入扩展目录
cd ~/.pi/agent/extensions/feishu

# 安装依赖
npm install

配置

有两种配置方式:

方式一:环境变量

export FEISHU_APP_ID="cli_xxxxxxxxxxxx"
export FEISHU_APP_SECRET="xxxxxxxxxxxxxxxxxx"
export FEISHU_ALLOW_FROM="*"  # 或指定 open_id,逗号分隔
export FEISHU_GROUP_POLICY="mention"  # 或 "open" 接收所有群消息

方式二:配置文件

创建 ~/.pi/feishu.json:

{
  "appId": "cli_xxxxxxxxxxxx",
  "appSecret": "xxxxxxxxxxxxxxxxxx",
  "allowFrom": ["*"],
  "groupPolicy": "mention",
  "reactEmoji": "THUMBSUP",
  "domain": "feishu"
}

配置项说明:

字段 说明 默认值
appId 飞书应用 ID 必填
appSecret 飞书应用密钥 必填
allowFrom 允许的发送者 ID,["*"] 表示所有人 ["*"]
groupPolicy 群消息策略:mention(仅@时响应)或 open(所有消息) mention
reactEmoji 收到消息时的表情反应 THUMBSUP
domain 域名:feishu(中国版)或 lark(国际版) feishu

获取飞书应用凭证

  1. 访问 飞书开放平台
  2. 创建企业自建应用
  3. 获取 App ID 和 App Secret
  4. 启用机器人能力
  5. 配置事件订阅:im.message.receive_v1

使用

启动 pi 后:

/feishu start    # 启动飞书连接(同时初始化远程命令)
/feishu status   # 查看连接状态
/feishu stop     # 断开连接

飞书远程命令

连接成功后,可以在飞书中发送以下命令:

命令 功能
/new 创建新会话

工作原理

┌─────────────┐    WebSocket    ┌─────────────┐
│   飞书云     │ ◄──────────────► │  pi 扩展    │
└─────────────┘                  └──────┬──────┘
                                        │
                                        ▼
                                 ┌─────────────┐
                                 │   pi 核心   │
                                 └─────────────┘

消息流程:

  1. 飞书消息通过 WebSocket 推送到扩展
  2. 扩展将消息注入到 pi 对话
  3. LLM 生成响应
  4. agent_end 事件触发,扩展自动将响应发送回飞书

与工具模式的区别:

旧版使用工具(feishu_reply)让 LLM 主动发送消息,问题是工具结果返回给 LLM 后可能导致重复回复。

新版使用事件订阅,LLM 正常响应即可,响应完成后自动发送,避免重复回复问题。

故障排除

连接失败

  1. 检查 App ID 和 App Secret 是否正确
  2. 确认机器人已启用
  3. 检查事件订阅配置

收不到消息

  1. 检查 groupPolicy 配置
  2. 确认群聊中 @ 了机器人(如果 groupPolicy 是 "mention")
  3. 检查 allowFrom 是否包含发送者 ID

SDK 安装失败

# 尝试使用国内镜像
npm install --registry=https://registry.npmmirror.com

About

A pi extension for feishu

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages