Initial commit: company-kb framework
- 完整的知识库框架(P0-P5 路线图) - 12篇治理文档 - 工具脚本(kb-init.sh, kb-lint-fm.py, feishu-sync.py, kb-bot) - 7个 Claude 命令 - 示例项目和测试项目(wanniu-l1) - 契约文件(meta/kb-contract.yaml) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
tools/kb-bot/subscribe.sh
Executable file
35
tools/kb-bot/subscribe.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
# subscribe.sh —— 飞书群消息长连接订阅(WebSocket,无需公网回调)
|
||||
#
|
||||
# 起一个常驻长连接,把 @机器人 的群消息事件逐条落到 events/ 目录,
|
||||
# 由 handle.py 消费。单实例锁由 lark-cli 保证(勿加 --force)。
|
||||
#
|
||||
# 用法:
|
||||
# bash tools/kb-bot/subscribe.sh # 前台跑
|
||||
# nohup bash tools/kb-bot/subscribe.sh & # 后台常驻
|
||||
#
|
||||
# 依赖: lark-cli 已装且 bot 身份可用(lark-cli auth status)。
|
||||
set -euo pipefail
|
||||
|
||||
BOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
EVENTS_DIR="$BOT_DIR/events"
|
||||
mkdir -p "$EVENTS_DIR"
|
||||
|
||||
export PATH="$HOME/.npm-global/bin:$PATH"
|
||||
|
||||
if ! command -v lark-cli >/dev/null 2>&1; then
|
||||
echo "ERROR: lark-cli 不在 PATH。请先安装并 lark-cli auth login。" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "[kb-bot] 订阅飞书群消息事件 → $EVENTS_DIR"
|
||||
echo "[kb-bot] 只收 im.message.receive_v1;Ctrl-C 停止。"
|
||||
|
||||
# --output-dir: 每个事件写成独立 JSON 文件,handle.py 轮询消费
|
||||
# --compact: 扁平化,提取 text,去噪
|
||||
# --quiet: 抑制 stderr 状态噪音(避免日志泄露)
|
||||
exec lark-cli event +subscribe \
|
||||
--event-types im.message.receive_v1 \
|
||||
--compact \
|
||||
--quiet \
|
||||
--output-dir "$EVENTS_DIR"
|
||||
Reference in New Issue
Block a user