← 返回 Skills 市场
vinzeny

Feishu Group Memory

作者 vinzeny · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
298
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install feishu-group-memory
功能描述
Extract and store structured information from Feishu group messages, then query it and get AI-generated insights. Use when the user wants to: record what's b...
使用说明 (SKILL.md)

Feishu Group Memory

Architecture

Scripts handle data only — no LLM calls inside scripts:

  • onboarding.py — read/write industry knowledge pack config
  • listener.py — fetch raw messages from Feishu; save analyzed records
  • query.py — keyword search over stored records
  • billing.py — SkillPay charge/balance/payment-link

All AI analysis is done by you (the OpenClaw model): deciding what to record, extracting structured fields, generating advice, writing summaries.


Quick Reference

Operation Script Billed
Check industry config onboarding.py check Free
Load built-in industry pack onboarding.py setup --industry Free
Save custom industry pack onboarding.py save --content Free
Find group by name listener.py find_chat --name Free
Fetch raw messages listener.py fetch_raw Free
Save analyzed records listener.py save_records Free
Search records query.py search Free
List records by period query.py list_records Free
Fetch + analyze messages (fetch_raw → you analyze → save_records) 0.005 USDT
Get AI advice (query → you advise) 0.003 USDT
Generate summary report (list_records → you summarize) 0.005 USDT

First Use: Onboarding

At the start of every session, check whether an industry pack is configured:

python3 {baseDir}/scripts/onboarding.py check --workspace ~/.openclaw/workspace
  • {"configured": true, "context": "..."} → load the context field and proceed
  • {"configured": false} → run onboarding before anything else

Onboarding conversation

Ask the user:

"Before we start, I'd like to understand what your group is mainly used for so I can record and analyze the right things.

Choose one, or describe it in your own words:

  1. 📈 Sales tracking (leads, quotes, deals)
  2. 🎧 Customer support (tickets, issues, complaints)
  3. ⚖️ Legal matters (contracts, risks, cases)
  4. 📋 Project management (tasks, milestones, blockers)
  5. ✍️ Describe my own use case"

Saving the config

Built-in industry (options 1–4):

python3 {baseDir}/scripts/onboarding.py setup \
  --industry sales \
  --workspace ~/.openclaw/workspace

Valid slugs: sales / customer-service / legal / project

Custom description (option 5):

Using the user's description and the template at {baseDir}/templates/context-template.md, generate the knowledge pack yourself, then save it:

python3 {baseDir}/scripts/onboarding.py save \
  --content "YOUR GENERATED CONTENT" \
  --workspace ~/.openclaw/workspace

Confirm with the user: "Got it! I'll use this context going forward. Which group would you like me to start recording?"


Feature: Record Group Messages

Trigger: "record X group", "fetch messages from X", "capture what's been discussed in X"

Step 1 — Find the group

python3 {baseDir}/scripts/listener.py find_chat --name "KEYWORD"

If multiple results, show them and ask the user to pick one.

Step 2 — Fetch raw messages

python3 {baseDir}/scripts/listener.py fetch_raw \
  --chat_id CHAT_ID \
  --limit 100 \
  --workspace ~/.openclaw/workspace

Returns an array of {msg_id, time, sender, text} objects.

Step 3 — You analyze

Using the loaded industry knowledge pack (from onboarding check), go through each message and decide:

  • Is it worth recording?
  • What category does it belong to?
  • Who or what is the key entity (person, company, project)?
  • What structured fields can be extracted?
  • What is the urgency (high / medium / low)?

Step 4 — Save the records

python3 {baseDir}/scripts/listener.py save_records \
  --chat_id CHAT_ID \
  --workspace ~/.openclaw/workspace \
  --records '[{"msg_id":"...","time":"...","sender":"...","raw_text":"...","category":"...","key_entity":"...","summary":"...","fields":{...},"urgency":"high"}]'

Step 5 — Report to user

Summarize what was found, e.g.:

"Analyzed 100 messages. Saved 12 items:

  • 3 customer intent signals (Li, Wang, Chen)
  • 5 follow-up actions
  • 4 pricing discussions

2 high-urgency items — want me to walk through them?"

Billing

python3 {baseDir}/scripts/billing.py charge \
  --user_id USER_ID --amount 0.005 --label "message analysis"

If payment_required is returned, show the top-up link and stop.


Feature: Query Records

Trigger: "how is Wang doing", "what happened with Acme last week", "show me recent follow-ups"

python3 {baseDir}/scripts/query.py search \
  --query "KEYWORD" \
  --workspace ~/.openclaw/workspace

Returns matching records as raw JSON. You turn them into a natural-language answer, e.g.:

"Here's what I have on Wang (Wang Zong):

  • Jan 15: Said he can sign next week (high priority)
  • Jan 12: Asked about discount options, still considering

Last contact was 3 days ago — worth reaching out today."

No charge for queries.


Feature: AI Advice

Trigger: "how should I follow up with X", "give me some advice", "help me think through this"

First, search for relevant records:

python3 {baseDir}/scripts/query.py search \
  --query "KEYWORD" \
  --workspace ~/.openclaw/workspace

Then reload the industry pack if needed:

python3 {baseDir}/scripts/onboarding.py check --workspace ~/.openclaw/workspace

Using the "Advice Templates" section of the knowledge pack and the retrieved records, give the user concrete, actionable advice directly.

python3 {baseDir}/scripts/billing.py charge \
  --user_id USER_ID --amount 0.003 --label "AI advice"

Feature: Summary Report

Trigger: "summarize today", "weekly report", "what happened this week"

python3 {baseDir}/scripts/query.py list_records \
  --period today|week|all \
  --workspace ~/.openclaw/workspace

You write the summary. Example structure:

Weekly Summary (Jan 13–19)

28 items recorded across 7 customers.

Action required (3)

  • Li Zong: ready to sign — prepare draft contract
  • Wang Zong: price sticking point — request special approval

By category

  • Customer intent: 12 | Follow-ups: 8 | Pricing: 5 | Other: 3

Suggestion: 2 customers haven't been contacted in 5+ days.

python3 {baseDir}/scripts/billing.py charge \
  --user_id USER_ID --amount 0.005 --label "summary report"

Error Handling

Situation Response
No industry pack configured Run onboarding first
Group not found "I couldn't find a group called 'X'. Could you give me the full name?"
No records yet "Nothing recorded yet. Want me to fetch messages from that group now?"
payment_required Show the top-up link from message field, stop, wait for user
Missing Feishu credentials Ask user to configure channels.feishu.accounts in openclaw.json
安全使用建议
Before installing, consider the following: 1) The skill needs Feishu credentials (FEISHU_APP_ID and FEISHU_APP_SECRET) or a configured ~/.openclaw/openclaw.json, but the package metadata does not declare that — verify where you will supply credentials. 2) billing.py contains a hard-coded SKILLPAY_API_KEY in the repository; ask the author to remove embedded keys and use a configuration or delegate billing to a secure service. 3) The skill will read ~/.openclaw/openclaw.json and write records and context files under ~/.openclaw/workspace — review those files to ensure no unrelated secrets are exposed. 4) Confirm billing behavior and SkillPay endpoints before providing user IDs or running charge operations. 5) If you trust the author and want to proceed, request an updated release that: declares required env vars/config paths, removes hard-coded secrets, and documents exactly what files are read/written. If you cannot obtain those fixes, treat this package cautiously or run it in an isolated environment after rotating any affected credentials.
功能分析
Type: OpenClaw Skill Name: feishu-group-memory Version: 1.0.0 The skill bundle is a legitimate tool for extracting and managing structured information from Feishu group messages. It includes scripts for Feishu API interaction (listener.py), local data storage and search (query.py), and a monetization mechanism via the SkillPay service (billing.py). While the skill accesses sensitive credentials in ~/.openclaw/openclaw.json and contains a hardcoded API key for its billing service, these behaviors are transparently documented in SKILL.md and are necessary for its stated functionality. No evidence of malicious intent, data exfiltration, or unauthorized execution was found.
能力评估
Purpose & Capability
The code and SKILL.md implement a Feishu message fetch → local record store → model analysis flow, which matches the skill's stated purpose. However, the skill metadata declares no required environment variables or config paths while the scripts explicitly require Feishu credentials (FEISHU_APP_ID / FEISHU_APP_SECRET) or a user config at ~/.openclaw/openclaw.json. That metadata omission is inconsistent and should be corrected.
Instruction Scope
Runtime instructions (and the code) tell the agent to read Feishu messages and save structured records to ~/.openclaw/workspace. listener.py will also read ~/.openclaw/openclaw.json if env vars are absent. Reading a user config file is broader than the metadata indicates and may expose other config data; the SKILL.md does not disclose this file access. The model is entrusted to perform all AI analysis (the scripts avoid LLM calls), but the flow gives the skill ability to fetch and persist user chat content — the user should be aware of what is stored locally and where.
Install Mechanism
There is no install script or remote download. The skill is instruction/code-only and does not fetch third-party code at install time, so install-time download risk is low.
Credentials
The package does not declare required env vars but the code expects FEISHU_APP_ID and FEISHU_APP_SECRET (or credentials inside ~/.openclaw/openclaw.json). More importantly, billing.py contains a hard-coded SKILLPAY_API_KEY constant (a plaintext API key). Including an embedded third‑party API key in distributed code is inappropriate: it may indicate credential leakage, impersonation risk, or improper key management. The presence of that key is not justified by the manifest and should be remediated.
Persistence & Privilege
The skill writes configuration and records under ~/.openclaw/workspace and ~/.openclaw/... which is expected for a local chat-memory tool. always:false (normal) and it does not request system-wide privilege escalation. Still, it will store potentially sensitive chat data locally and read the user's openclaw.json config file, so users should confirm they are comfortable with that persistence and review the exact storage paths/contents.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install feishu-group-memory
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /feishu-group-memory 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of feishu-group-memory. - Extracts, stores, and queries structured info from Feishu group messages. - Supports built-in and custom industry knowledge packs for use cases like sales, support, legal, and projects. - Enables free keyword search and config operations; AI-driven advice and summaries are billed per use. - Includes guided onboarding, group message recording, activity summaries, and actionable advice based on chat history.
元数据
Slug feishu-group-memory
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Feishu Group Memory 是什么?

Extract and store structured information from Feishu group messages, then query it and get AI-generated insights. Use when the user wants to: record what's b... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 298 次。

如何安装 Feishu Group Memory?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install feishu-group-memory」即可一键安装,无需额外配置。

Feishu Group Memory 是免费的吗?

是的,Feishu Group Memory 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Feishu Group Memory 支持哪些平台?

Feishu Group Memory 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Feishu Group Memory?

由 vinzeny(@vinzeny)开发并维护,当前版本 v1.0.0。

💬 留言讨论