Skip to content

trynhexagon/tide

Repository files navigation

潮汐 · Tide — Lark/Feishu 工作流的本地第二大脑

A local-first, multi-agent work assistant for Lark/Feishu. Tide turns exported chat streams into daily briefs, tasks, risks, cross-chat topics, relation graphs, and topic evolution views.

飞书按照群聊和私聊组织信息,但真实工作往往围绕项目、主题、任务、决策和风险推进。 当同一件事散落在多个群聊和会话里,人很难持续看见完整上下文。

潮汐不是聊天摘要器。它把“会话流”重新组织成“工作流”。

潮汐今日简报:重点事项、活跃主题、风险信号与 Agent 节拍

今日简报把分散在多个会话中的重点事项、风险信号与活跃主题汇总到一处。 截图使用完全虚构的合成演示数据。

Lark CLI / compatible exporter
            ↓
local NDJSON archive
            ↓
FastAPI + SQLite deterministic pipeline
            ↓
daily brief · tasks · reminders · topic relations · information flow

它适合谁

  • 同时参与大量群聊、项目和评审的项目经理、产品经理、解决方案人员与架构师;
  • 想把工作数据保留在本机、自行选择 LLM 网关的个人或小团队;
  • 想研究“确定性数据管道 + LLM 洞察”协作方式的开发者。

v0.2 能力

  • ✅ NDJSON 会话归档增量摄取到 SQLite;
  • ✅ 15 分钟自动执行“采集 → 分类 → 评估”,新消息不再停留在 raw 状态;
  • ✅ 每日简报、任务、提醒、风险信号与 Agent 执行记录;
  • ✅ 深度洞察真实化:消息热力图、性质分布、处理漏斗、高分信号;
  • ✅ 主题关联星图:综合消息共现、共享会话与共同参与人;
  • ✅ 单主题信息流:来源会话 → 消息性质 → 时间区间;
  • ✅ 递进节奏:讨论 → 协调 → 决策 → 执行的周粒度演化;
  • ✅ Anthropic 与 OpenAI-compatible 两类 LLM 协议;
  • ✅ LLM 双重 kill switch 与每日 token 预算;
  • ✅ Docker Compose 自托管。

当前仍是早期开源版本:主题关键词需要按自己的工作语境配置,Lark/Feishu Bot webhook 尚未实现,也未提供公共托管服务。

界面预览

以下截图均来自真实运行的 Tide v0.2,但使用完全虚构的群聊、角色和项目内容, 不对应任何真实组织或个人。

跨会话主题关系

潮汐主题关联图谱:聚焦一个主题并查看跨会话关系及证据

按消息共现、共享会话与共同参与人形成关系图;聚焦任一主题后,可以继续查看关联强度和证据消息。

单主题信息流

潮汐单主题信息流:递进节奏与来源会话到消息性质的流向

把一个主题中的消息组织为周粒度递进节奏,以及“来源会话 → 消息性质 → 时间区间”的信息流。

深度洞察

潮汐深度洞察:消息热力图、性质分布与处理漏斗

从全量消息中观察时间分布、信号性质和“接入 → 打标 → 高分信号 → 任务 → 提醒”的处理漏斗。

数据来源与 Lark CLI

真实运行链路的上游基于飞书官方 Lark CLI。先安装并授权:

npx @larksuite/cli@latest install
lark-cli config init
lark-cli auth login --recommend
lark-cli auth status

Tide 本身从本地 NDJSON 目录读取数据。你可以使用 Lark CLI、自有脚本或其他导出器, 只要生成以下结构:

archive/
  groups/<chat-name>__<chat-id-suffix>/messages.ndjson
  p2p/<peer-name>__<chat-id-suffix>/messages.ndjson

每行至少应能映射出消息 ID、会话、发送人、正文和创建时间。摄取逻辑使用 INSERT OR IGNORE,可以重复执行增量同步。

隐私提示:聊天归档可能包含敏感内容。建议只在本机运行,不要提交 .env、 SQLite 数据库、归档文件或包含真实工作数据的截图。

快速开始

Docker Compose

git clone https://github.com/trynhexagon/tide.git
cd tide
cp .env.example .env

编辑 .env

# anthropic: /v1/messages;openai: /chat/completions
LLM_PROVIDER=anthropic
LLM_API_KEY=sk_REPLACE_ME
LLM_BASE_URL=https://api.example.com
LLM_MODEL=your-model-id

LLM_ENABLED=true
LLM_DAILY_TOKEN_BUDGET=500000

# 宿主机上的 NDJSON archive
HOST_ARCHIVE_DIR=./data/archive

如果暂时没有 LLM key,可设置 LLM_ENABLED=false,系统仍能完成确定性摄取、分类、 评估和本地启发式回退。

mkdir -p data/archive
docker compose up -d --build
docker compose logs -f backend

打开 http://127.0.0.1:3400。后端健康检查:

curl http://127.0.0.1:18100/api/health

停止服务:

docker compose down

本地开发

cp .env.example .env
bash scripts/dev.sh

停止:bash scripts/stop.sh

主题配置

默认主题规则是通用示例。请同时调整:

  • scripts/aggregate_topics.py 中的 PROJ_REKEYWORD_TOPICS
  • backend/app/topic_match.py 中的同名规则。

两处必须保持一致:前者生成聚合主题,后者负责把消息映射回主题,供关联图谱和信息流使用。

LLM 安全闸

LLM 调用受三层限制:

  1. .env 中的 LLM_ENABLED
  2. SQLite 中的运行时开关;
  3. LLM_DAILY_TOKEN_BUDGET 每日预算。

任一开关关闭,洞察 Agent 都不会继续产生计费调用。

curl http://127.0.0.1:18100/api/settings/llm/status
curl -X POST http://127.0.0.1:18100/api/settings/llm/switch \
  -H 'Content-Type: application/json' \
  -d '{"enabled":false}'

关键接口

GET  /api/health
POST /api/ingest/run
POST /api/ingest/process
POST /api/ingest/pipeline
GET  /api/dashboard/today
POST /api/dashboard/regenerate
GET  /api/insights
GET  /api/topics
GET  /api/topics/graph
GET  /api/topics/{code}/flow
GET  /api/todos
GET  /api/reminders/timeline
GET  /api/agents/state-machine
GET  /api/settings/llm/status

工程方法

潮汐来自真实工作环境,并按一条可重复的工程化 AI Coding 链路演进:

理解问题 → 探索真实环境 → 定义问题 → 制定方案 → 执行与验证 → 持续反馈

重点不是让 AI 尽快生成代码,而是先确认真实痛点、数据边界和运行约束,再把每轮验证 结果带回下一轮迭代。v0.2 的主题可视化和调度修复都来自真实运行反馈。

版本

  • v0.1.0:首个开源版本,完成 FastAPI、SQLite、Agent 骨架、会话摄取和每日简报;
  • v0.2.0:洞察真实化、主题关联与信息流、确定性处理闭环、双协议 LLM 网关。

完整变化见 CHANGELOG.md。项目仍在不定期更新和维护。

反馈与贡献

欢迎在 GitHub Issues 提交:

  • 不同飞书组织和权限环境下的数据接入问题;
  • 跨会话主题归并的准确性反馈;
  • 任务、决策与风险识别的误报或漏报;
  • 部署、隐私边界和其他 IM/知识系统适配建议。

License

Apache-2.0,见 LICENSE

About

潮汐 · Tide — a local-first second brain for Lark/Feishu: chat archives → daily briefs, tasks, topic relations and workflow insights.

Topics

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors