ob-labs/coskills/pmem-style-extraction
Claude Code and agent skill by ob-labs/coskills
- community
Checking that the SKILL.md file is still in the repository.
从多模态信息源(文章、URL、Skill、图像)中提取写作风格特征并存储至 powermem 知识库。支持风格冲突检测和人工仲裁(抛弃/覆盖/分支)。当用户提到"提取风格"、"学习风格"、"分析文章风格"、"保存写作特征"或提供文章/URL 要求分析其写作特色时使用此 skill。
Install
npx vskill@latest install ob-labs/coskills/pmem-style-extractionSKILL.md
Style Extraction
从多模态输入中提取写作风格特征,并存储到 powermem 知识库中,支持智能冲突检测和人工仲裁。
核心流程
执行以下步骤提取和存储风格特征:
0. 环境准备(首次执行)
在运行任何脚本前,先准备 .venv。下面的写法不依赖固定绝对路径:
后续所有 Python 脚本都使用 $PYTHON_BIN 执行,不依赖当前 shell 是否已激活虚拟环境。
配置管理说明:
- 首次使用时,脚本会自动创建
../pmem-config/共享配置目录 - 包含
pmem-key.env(用户配置)和.env(完整模板) - 配置优先级:系统环境变量 >
pmem-config/pmem-key.env>pmem-config/.env - 两个 skills(extraction 和 generation)共享同一配置,配置一次即可
0.1 配置检测(必需步骤)
每次运行前必须执行配置检测:
如果配置检测失败(退出码为 1):
- 检测输出说明(固定文案保留在 Skill 中,仅缺失项由脚本动态输出):
``bash # 运行配置检测(脚本会动态输出“当前缺失的配置项”) "$PYTHON_BIN" scripts/check_config.py ``
输出结构示例(缺失项列表以脚本实际检测结果为准): ``` ⚠️ 检测到以下配置项缺失或未设置:
[这里的缺失项列表由 check_config.py 动态输出]
📝 共享配置文件位置: /path/to/skills/pmem-config/pmem-key.env
请点击上面的共享配置文件路径,进入文件夹后手动编辑文件:pmem-key.env。 手动填写完成后,返回聊天框回复:已完成 ```
- Agent 应执行以下操作:
- 明确告知用户共享配置目录路径:
../pmem-config/ - 明确告知用户需要编辑的文件名:
pmem-key.env - 不在对话中逐项收集配置值,仅等待用户手动填写
- 用户回复“已完成”后,重新运行
check_config.py验证配置
- 写入配置示例:
```bash # 用户手动打开并编辑:../pmem-config/pmem-key.env # 在文件中填写缺失项,例如: LLM_API_KEY=sk-xxxxx EMBEDDING_API_KEY=sk-yyyyy
# 重新检测 "$PYTHON_BIN" scripts/check_config.py ```
- 重要提示:
- 配置会持久化保存在
../pmem-config/pmem-key.env - 下次使用任一 skill 时无需重复配置
- 用户也可以手动编辑该文件修改配置
配置检测通过后,继续执行后续步骤。
1. 获取内容
根据输入类型选择处理方式:
URL 输入:调用 baoyu-url-to-markdown 获取网页内容
然后读取 /tmp/extracted_content.md 作为后续分析的输入。
文本/文件输入:直接使用提供的内容。
Skill 文件输入:读取 SKILL.md 文件内容。
图像输入:使用视觉能力提取图像中的文字排版和视觉风格元素。
2. 特征提取
使用 LLM 从内容中剥离事实信息,仅保留风格骨架。使用以下 Prompt 模板:
将提取的特征保存为 JSON 格式(例如 /tmp/extracted_features.json),然后自动进入下一步冲突检测。
3. 自动冲突检测
无需用户操作,系统自动使用脚本搜索 powermem 中已存在的相似 Profile,并检测是否存在冲突:
脚本将输出:
- 是否发现相似 Profile
- 相似度分数
- 是否存在冲突特征
- 冲突详情(如果有)
4. 人工仲裁(仅在有冲突时)
只有当检测到冲突时才暂停,向用户展示对比并等待选择:
等待用户输入选择(1/2/3)。
如果无冲突,直接跳到步骤 5 收集元数据。
5. 交互式收集元数据
无论是否有冲突,确定存储模式后,立即进入元数据收集,通过对话方式逐个询问用户:
交互流程(Agent 逐个询问,用户回答一个后再问下一个):
步骤 1/6 - 适用平台:
用户回答后,Agent 确认并继续。
步骤 2/6 - 风格标签:
用户回答后,Agent 确认并继续。
步骤 3/6 - 总体基调:
用户回答后,Agent 确认并继续。
步骤 4/6 - 简短说明:
用户回答后,Agent 确认并继续。
步骤 5/6 - Profile ID:
用户回答后,Agent 确认并继续。
步骤 6/6 - Profile 名称:
用户回答后,Agent 汇总所有信息并确认。
收集完成后,Agent 调用脚本保存元数据:
6. 存储 Profile
使用收集的元数据执行存储:
无冲突 - 自动新建:
覆盖模式 和 分支模式 同理,使用相同的参数。
7. 确认结果
存储完成后,列出当前所有 Profile 供用户确认:
辅助工具
列出所有已存 Profile:
查看 Profile 数据结构说明:参考 references/profile_schema.md
环境要求
- Python 环境:使用项目的
.venv虚拟环境 - 依赖:powermem SDK(脚本启动时自动加载/初始化
.env配置) - baoyu-url-to-markdown skill(处理 URL 输入时需要)
使用示例
完整流程(推荐):
从 URL 学习风格:
处理风格冲突:
注意事项
- 特征提取时严格排除具体事实信息,只保留风格骨架
- 自动化流程:特征提取 → 冲突检测应自动进行,无需用户等待确认
- 仅在必要时暂停:只有检测到冲突时才暂停等待用户决策(抛弃/覆盖/分支)
- 元数据收集是主要交互点:Agent 通过对话逐个询问6个问题,用户回答一个问题后再问下一个
- 不使用交互式 CLI 工具:通过 Agent 对话收集元数据,最后调用 Python 脚本保存
- 运行脚本前优先确保
$PYTHON_BIN可用,并已安装powermem - 冲突检测阈值(0.85)可根据实际情况调整
- Profile 以
user_id="style_owner"固定命名空间存储,支持多个 Profile 共存 - 每个 Profile 通过
profile_id唯一标识(如 default、emotion-style) - 所有脚本都会先执行环境自举:自动创建
.env(若缺失)并加载配置 - 分支模式下建议使用描述性命名(如"学术严谨版"、"轻松幽默版")
- 元数据对 Generation Skill 的智能匹配至关重要,不可省略
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/pmem-style-extraction/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ob-labs/coskills/pmem-style-extraction)