/install feishu-group-memory
Feishu Group Memory
Architecture
Scripts handle data only — no LLM calls inside scripts:
onboarding.py— read/write industry knowledge pack configlistener.py— fetch raw messages from Feishu; save analyzed recordsquery.py— keyword search over stored recordsbilling.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 thecontextfield 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:
- 📈 Sales tracking (leads, quotes, deals)
- 🎧 Customer support (tickets, issues, complaints)
- ⚖️ Legal matters (contracts, risks, cases)
- 📋 Project management (tasks, milestones, blockers)
- ✍️ 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 |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install feishu-group-memory - After installation, invoke the skill by name or use
/feishu-group-memory - Provide required inputs per the skill's parameter spec and get structured output
What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 298 downloads so far.
How do I install Feishu Group Memory?
Run "/install feishu-group-memory" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Feishu Group Memory free?
Yes, Feishu Group Memory is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Feishu Group Memory support?
Feishu Group Memory is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Feishu Group Memory?
It is built and maintained by vinzeny (@vinzeny); the current version is v1.0.0.