名称: slack-memory-store 描述: 为在IT公司中通过Slack通信的AI员工设计的综合记忆存储系统。自动分类和存储多种信息类型(Slack消息、Confluence文档、邮件、会议笔记、项目、决策、反馈),并组织成文件夹结构,提供高效索引和检索。适用于管理或搜索员工记忆、存储对话、记录决策、跟踪项目或组织任何工作相关信息。
Slack记忆存储系统
此技能使AI员工在IT公司环境中通过Slack通信进行系统化的记忆管理。
核心能力
- 自动分类 - 自动将传入信息分类到适当的文件夹中
- 多格式支持 - 处理Slack消息、Confluence文档、邮件、会议笔记等
- 智能索引 - 维护最新的index.md以快速检索信息
- 灵活模式 - 支持每种信息类型的结构化元数据
- CRUD操作 - 创建、读取、更新和删除记忆条目
快速开始
初始化记忆结构
首次使用记忆系统前,初始化目录结构:
python scripts/init_memory.py /path/to/memory
这将创建:
- 所有必需目录(channels/、users/、projects/等)
- 带导航的初始index.md
- 元数据跟踪文件
添加新信息
向记忆添加信息的主要方式:
python scripts/add_memory.py /path/to/memory "标题" "内容" '{"type":"channel", "channel_id":"C123"}'
脚本将:
- 分析内容和元数据
- 自动分类到适当目录
- 生成干净文件名
- 格式化带YAML前言的适当格式
- 保存到正确位置
更新索引
添加/修改多个条目后,更新索引:
python scripts/update_index.py /path/to/memory
这将刷新:
- 统计信息(总频道数、用户数、项目数等)
- 最近更新列表(10个最近更改)
- 导航链接
搜索记忆
快速查找信息:
# 按内容搜索
python scripts/search_memory.py /path/to/memory content "프로젝트"
# 按标签搜索
python scripts/search_memory.py /path/to/memory tag urgent
# 列出类别中的文件
python scripts/search_memory.py /path/to/memory category projects
记忆组织
目录结构
memory/
├── index.md # 主导航和快速参考
├── channels/ # Slack频道信息
│ └── C123_마케팅팀.md
├── users/ # 团队成员档案
│ └── U456_김철수.md
├── projects/ # 项目状态和历史
│ ├── 신제품런칭.md
│ └── archive/
├── tasks/ # 已完成和进行中的任务
│ ├── ongoing/
│ └── completed/
├── decisions/ # 决策点和理由
├── meetings/ # 会议笔记和行动项
├── feedback/ # 用户反馈和建议
├── announcements/ # 重要公告
├── resources/ # 内部文档、指南、手册
├── external/ # 外部信息
│ └── news/
└── misc/ # 未分类信息
文件格式
每个记忆文件遵循此结构:
---
type: channel
channel_id: C01234567
channel_name: "마케팅팀"
participants: [U01234567, U76543210]
tags: [marketing, important]
created: 2025-10-28 10:00:00
updated: 2025-10-28 15:30:00
---
# 마케팅팀 채널
## 커뮤니케이션 지침
- Tone: Professional but friendly
- Response time: Within 1 hour during business hours
- Key topics: Campaign planning, performance metrics
## Recent Discussions
...
存储策略:混合方法
关键:使用混合策略优化检索和文件大小:
1. 配置文件(每个实体一个文件 - 更新,不创建新文件)
- 目的:持久指南、偏好、静态信息
- 操作:始终先检查文件是否存在,然后更新它
- 示例:
channels/C123_마케팅팀.md- 频道指南、成员、沟通风格users/U456_김철수.md- 用户档案、偏好、工作风格
2. 主题文件(多个 - 创建新文件或更新现有文件)
- 目的:对话、项目、决策、会议
- 操作:每个主题创建新文件,或如果同一主题继续则更新
- 示例:
projects/신제품런칭.md- 项目讨论decisions/AWS전환_20251117.md- 重要决策(带日期戳)meetings/2025-11-17-Q4전략회의.md- 会议笔记misc/마케팅팀_일상_20251117.md- 日常对话
3. 分类决策树
内容类型:
├─ 频道/用户指南或偏好?
│ └─ 是 → 更新 channels/C123_채널명.md 或 users/U456_유저명.md
│
└─ 否 → 主要主题是什么?
├─ 项目讨论 → projects/프로젝트명.md
├─ 重要决策 → decisions/주제_DATE.md
├─ 会议笔记 → meetings/DATE-주제.md
├─ 日常对话 → misc/채널명_DATE.md(如果不重要可跳过)
└─ 任务/反馈/公告 → 相应目录
处理不同内容类型
Slack对话
接收Slack消息线程时:
- 识别上下文:频道、参与者、日期范围
- 提取关键信息:决策、行动项、重要讨论
- 使用混合策略分类(见上方决策树):
- 频道指南/偏好 → 更新
channels/C123_채널명.md - 用户偏好 → 更新
users/U456_유저명.md - 项目焦点 → 创建/更新
projects/프로젝트명.md - 决策焦点 → 创建
decisions/주제_DATE.md - 会议笔记 → 创建
meetings/DATE-주제.md - 日常聊天 → 创建
misc/채널명_DATE.md(如果不重要可跳过)
- 频道指南/偏好 → 更新
- 格式化:按时间顺序排列,保留线程结构
- 元数据:channel_id、参与者、date_range、message_count、related_to(链接到配置文件)
示例用法:
from scripts.add_memory import MemoryManager
manager = MemoryManager('/path/to/memory')
# 示例1:主题文件(项目讨论)
manager.add_memory(
title="Q4 전략 논의",
content=formatted_slack_thread,
metadata={
'type': 'project', # 将创建 projects/Q4전략논의.md
'channel_id': 'C123',
'channel_name': '마케팅팀',
'participants': ['U01', 'U02'],
'date_range': '2025-10-28',
'message_count': 25,
'tags': ['strategy', 'q4'],
'related_to': ['channels/C123_마케팅팀.md'] # 链接到频道配置文件
}
)
# 示例2:配置文件(频道指南更新)
manager.add_memory(
title="마케팅팀",
content="频道指南:专业语调,期望快速响应",
metadata={
'type': 'channel', # 将更新 channels/C123_마케팅팀.md
'channel_id': 'C123',
'channel_name': '마케팅팀',
'guidelines': {'tone': 'professional', 'response_time': '1시간 이내'}
}
)
Confluence文档
导入Confluence文档时:
- 转换格式:HTML → Markdown
- 保留结构:标题、列表、表格
- 添加元数据:source_url、space、last_updated
- 分类:通常 →
resources/或projects/
邮件线程
存储邮件对话时:
- 线程结构:保留回复链
- 提取元数据:发件人、收件人、主题、日期
- 按内容分类:
- 公告 →
announcements/ - 项目更新 →
projects/ - 反馈 →
feedback/
- 公告 →
会议笔记
记录会议时:
- 结构:日期、参与者、议程、讨论、行动项
- 始终存储到:
meetings/ - 交叉引用:链接到相关项目/决策
- 行动项:提取并考虑添加到
tasks/
外部新闻
保存外部文章时:
- 始终存储到:
external/news/ - 添加元数据:来源、source_url、日期、相关性
- 总结:专注于与公司相关的关键点
- 链接:如果适用,连接到related_project
自动分类
系统使用多级分类策略:
级别1:显式元数据
如果元数据中存在 type 字段 → 直接使用
级别2:结构指示器
- 存在
channel_id→channels/ - 存在
user_id→users/ - 存在
project_id→projects/
级别3:关键词分析
扫描内容中的关键词(见 references/classification-guide.md 获取完整列表):
- “프로젝트”、“project”、“milestone” →
projects/ - “결정”、“decision”、“승인” →
decisions/ - “회의”、“meeting” →
meetings/ - 等等
级别4:默认
如果无分类匹配 → misc/
高级功能
更新现有记忆
更新现有文件:
manager = MemoryManager('/path/to/memory')
manager.update_memory(
directory='projects',
filename='신제품런칭.md',
new_content=updated_content,
new_metadata={'updated': '2025-10-28 16:00:00', 'status': 'completed'}
)
交叉引用
使用 related_to 元数据链接相关文件:
---
type: decision
related_to:
- projects/신제품런칭.md
- meetings/2025-10-28-전략회의.md
---
版本管理
如果存在同名文件,系统自动:
- 检测重复
- 添加版本后缀:
filename_v2.md、filename_v3.md等
搜索提示
- 内容搜索:默认不区分大小写
- 标签搜索:查找所有带有特定标签的文件
- 类别搜索:列出目录中的所有文件
- 索引搜索:在index.md上使用浏览器Ctrl+F快速关键字查找
最佳实践
1. 一致的元数据
始终至少包括:
type:内容类型created:创建时间戳tags:相关标签以提高可搜索性
2. 描述性标题
使用清晰、描述性标题:
- ✅ “Q4 마케팅 전략 회의 - 2025-10-28”
- ❌ “미팅”
3. 定期索引更新
在以下情况后更新索引:
- 多个文件添加
- 文件删除
- 类别更改
- 或至少每小时一次
4. 自由使用标签
标签提高可发现性:
tags: [urgent, marketing, q4, strategy, approval-needed]
5. 链接相关信息
当信息相关时,添加交叉引用:
related_to:
- projects/웹사이트리뉴얼.md
- decisions/디자인시스템선택.md
参考文档
详细信息,请参见:
- data-schemas.md - 所有记忆类型的完整模式及示例
- classification-guide.md - 详细分类规则和内容处理策略
工作流示例
示例1:存储Slack讨论
# 1. 格式化Slack线程
slack_content = """
## Participants
- @chulsoo (PM)
- @sarah (Designer)
## Discussion
[10:30] chulsoo: 랜딩 페이지 디자인 리뷰 부탁드립니다
[10:35] sarah: 확인했습니다. 전반적으로 좋은데 CTA 버튼이 더 눈에 띄었으면 좋겠어요
...
"""
# 2. 添加到记忆
manager.add_memory(
title="랜딩 페이지 디자인 리뷰",
content=slack_content,
metadata={
'type': 'project',
'channel_id': 'C123',
'project': '신제품런칭',
'participants': ['U01', 'U02'],
'tags': ['design', 'review', 'landing-page']
}
)
# 3. 更新索引
update_index()
示例2:快速信息查找
# 查找所有与"신제품"相关的文件
python scripts/search_memory.py /memory content "신제품"
# 结果显示:
# 1. projects/신제품런칭.md
# 2. meetings/2025-10-15-신제품기획회의.md
# 3. decisions/신제품가격결정.md
示例3:跟踪项目进度
# 初始项目设置
manager.add_memory(
title="신제품 런칭 프로젝트",
content="""
## Overview
AI 기반 추천 시스템 개발 및 런칭
## Milestones
- [ ] MVP 개발 (2025-11-30)
- [ ] 베타 테스트 (2025-12-15)
- [ ] 정식 출시 (2025-12-31)
""",
metadata={
'type': 'project',
'status': 'in_progress',
'priority': 'high',
'participants': ['U01', 'U02', 'U03']
}
)
# 稍后:更新进度
manager.update_memory(
'projects',
'신제품런칭프로젝트.md',
updated_content_with_progress,
{'updated': '2025-10-28', 'status': 'on_track'}
)
故障排除
问题:搜索找不到文件
解决方案:确保文件名以 .md 结尾且不是 index.md
问题:错误分类
解决方案:在元数据中提供显式 type 或在内容中添加更具体的关键词
问题:索引过时
解决方案:手动运行 update_index.py
问题:重复文件
解决方案:系统自动处理,通过添加版本后缀(_v2、_v3等)
性能考虑
- 索引更新:O(n),其中n=总文件数。在批处理后运行,而非每个文件后
- 搜索:O(n) 线性扫描。对于大数据集(>1000个文件),考虑添加全文搜索
- 文件大小:保持单个文件在100KB以下以获得最佳性能
集成说明
此技能设计为无缝集成:
- Slack API集成以自动捕获消息
- Confluence API以导入文档
- Gmail API以归档邮件
- Calendar API以记录会议笔记
- 任何自定义数据源通过灵活的add_memory接口
记忆结构对AI代理友好:index.md提供快速概览,所有内容为Markdown格式便于解析和理解。