📦 MBTI Analyzer — MBTI人格分析
v0.4.0基于已授权的OpenClaw本地记忆、会话历史与workspace笔记,推断用户MBTI人格类型,并生成可视化报告。适用于“分析我的MBTI”“人格推断”等请求。
详细分析 ▾
运行时依赖
版本
版本 0.4.0 - 改进HTML与CSS报告渲染,包括布局、视觉清晰度与主题选项。 - 增加独立预览模式,可在不运行完整分析流程的情况下渲染示例报告。 - 删除中文文档与开发夹具脚本,便于维护。 - 更新文档,阐明流程用法、预览/报告步骤及快速入门指引。
安装命令
点击复制技能文档
# MBTI 从已授权的 OpenClaw 历史记录与工作区笔记生成有证据支持的 MBTI 报告。 ## 快速开始 本包为 skill。其他 agent 的公开交接入口见 README.md。 主要入口: - 触发短语:MBTI、personality analysis、type me - skill 命令:mbti-report 最低运行需求: - python3 本地开发或手动安装: ``bash ln -s /absolute/path/to/mbti "$CODEX_HOME/skills/mbti" ` 在聊天中调用 skill 开始分析: `text Analyze my MBTI using only my authorized memory and session history ` 给 agent 与维护者: - 运行任何脚本前请完整阅读本页 - 使用下方现有 pipeline 脚本作为实现步骤 - 不得跳过授权步骤 - 不得直接从原始历史推断 MBTI ## 概览 本 skill 产出: - report.html:主交付物 - report.md:紧凑摘要 - analysis_result.json:类型假设、置信度、后续问题 - evidence_pool.json:已评分且可追溯的证据 首次交互应完成: 1. 发现候选来源类别。 2. 向用户展示可用内容。 3. 询问授权哪些类别。 4. 运行提取 → 证据 → 推断 → 报告管道。 ## 核心规则 始终将工作流分为两层: 1. 完整提取:从已授权来源提取为结构化记录与证据池。 2. MBTI 推断:仅基于证据池与来源摘要进行推断。 禁止直接从完整原始历史推断 MBTI。 ## 何时使用 当用户想要: - 基于已有对话或记忆进行 MBTI 分析 - 无需问卷的性格推断 - 带证据的专业性格报告 - 对可能类型、相邻类型及不确定性的结构化总结 不得用于临床诊断或心理健康评估。 ## 授权优先 读取任何来源内容前: 1. 运行来源发现。 2. 向用户展示可用来源类别。 3. 说明报告可能会引用简短摘录(如未禁用引用)。 4. 请用户确认允许哪些来源类别。 默认候选类别: - 工作区长期记忆:MEMORY.md - 工作区每日记忆:memory/.md - OpenClaw 会话:~/.openclaw/agents//sessions/.jsonl - OpenClaw 记忆索引:~/.openclaw/memory/main.sqlite - OpenClaw 任务元数据:~/.openclaw/tasks/runs.sqlite - OpenClaw 定时任务元数据:~/.openclaw/cron/runs/.jsonl 默认排除: - .env - credentials/ - identity/ - 设备文件 - 审批文件 - 通用配置文件 - 网关与运行时日志 ## 执行流程 若用户未提供输出目录,将结果写入: `text ./.mbti-reports// ` 推荐顺序: ### 1. 发现候选来源 `bash python3 {baseDir}/scripts/discover_sources.py \ --workspace-root . \ --openclaw-home ~/.openclaw \ --output /tmp/mbti-source-manifest.json ` 用该清单向用户解释可分析内容。此时勿读取内容。 ### 2. 摄取已授权来源 `bash python3 {baseDir}/scripts/ingest_all_content.py \ --manifest /tmp/mbti-source-manifest.json \ --approved-source-types workspace-long-memory,workspace-daily-memory,openclaw-sessions \ --output-dir ./.mbti-reports/ ` 生成: - raw_records.jsonl - source_summary.json ### 3. 构建证据池 `bash python3 {baseDir}/scripts/build_evidence_pool.py \ --raw-records ./.mbti-reports//raw_records.jsonl \ --source-summary ./.mbti-reports//source_summary.json \ --output ./.mbti-reports//evidence_pool.json ` 该阶段应: - 保持高召回 - 移除明显工具噪音 - 标记伪信号 - 合并重复事实 - 保留可追溯证据引用 ### 4. 从证据池推断 MBTI `bash python3 {baseDir}/scripts/infer_mbti.py \ --evidence-pool ./.mbti-reports//evidence_pool.json \ --source-summary ./.mbti-reports//source_summary.json \ --output ./.mbti-reports//analysis_result.json ` 推断规则: - 以四种偏好作为主要决策层 - 仅用类型动力学与认知功能做一致性检查 - 独立强证据权重高于重复弱信号 - 保留反证据 - 边际较弱时生成后续问题 若 analysis_result.json 中 needs_followup: true 且用户可答,则先提问再定稿。 ### 5. 应用后续答案并重跑 用户答完低置信问题后,将答案作为额外用户证据并入管道重跑: `bash python3 {baseDir}/scripts/apply_followup_answers.py \ --raw-records ./.mbti-reports//raw_records.jsonl \ --source-summary ./.mbti-reports//source_summary.json \ --analysis ./.mbti-reports//analysis_result.json \ --output-dir ./.mbti-reports/ \ --answer "S/N=" \ --answer "J/P=" ` 更新: - raw_records.jsonl - source_summary.json - followup_answers.json - evidence_pool.json - analysis_result.json - report.md - report.html 若用户拒绝回答,保留当前报告并明确标注不确定性。 ### 6. 渲染最终报告 `bash python3 {baseDir}/scripts/render_report.py \ --analysis ./.mbti-reports//analysis_result.json \ --evidence-pool ./.mbti-reports//evidence_pool.json \ --output-dir ./.mbti-reports/ \ --quote-mode summary \ --open ` 加 --open 可在渲染后自动用默认浏览器打开 HTML 报告。 生成: - report.md - report.html ### 7. 渲染独立 HTML 预览 仅调布局、CSS、间距或徽章/主题行为时,用内置预览模式,无需重跑发现、摄取、证据构建与推断: `bash python3 {baseDir}/scripts/render_report.py \ --debug-preview \ --debug-type INTP \ --output-dir /tmp/mbti-preview ` 这会从捆绑固件生成完整 report.html 与 report.md,以便调试报告不依赖先前管道产物。 ## 阶段测试 想单独测试某阶段时,为该阶段准备合成固件,再对固件运行真实阶段脚本。 准备固件输入: `bash python3 {baseDir}/scripts/prepare_stage_fixture.py \ --stage infer \ --output-dir /tmp/mbti-stage-infer ` 然后运行要检查的阶段: `bash python3 {baseDir}/scripts/infer_mbti.py \ --evidence-pool /tmp/mbti-stage-infer/evidence_pool.json \ --source-summary /tmp/mbti-stage-infer/source_summary.json \ --output /tmp/mbti-stage-infer/analysis_result.json ` 支持的固件阶段: - discover:生成合成工作区与 OpenClaw 来源文件 - ingest:添加 source_manifest.json - evidence:添加 raw_records.jsonl 与 source_summary.json - infer:添加 evidence_pool.json - render:添加 analysis_result.json - followup:添加 answers_input.json 供 apply_followup_answers.py 使用 用以下命令对所有阶段入口做冒烟测试: `bash python3 -m unittest tests.test_stage_smoke ` ## 报告规则 HTML 报告是首要产物。聊天回复仅提供: - 最可能类型 - 置信度 - 2-4 条关键观察 - 输出文件路径 若 report.html` 已存在,请勿在聊天中自由发挥完整报告。 ## 证据规则 以下视为高风险伪信号: - 关于助手应如何行为的请求 - 格式偏好 - 无自描述上下文的工具与工作流指令 - 命令输出、日志、堆栈跟踪或复制的机器文本 以下视为更强证据: - 重复的自我描述 - 稳定的决策模式 - 反复的工作与反思习惯 - 期望结构与实际行为冲突 - 跨来源一致性 需要时阅读以下参考: - analysis_framework.md - evidence_rubric.md - report_copy_contract.md - report_structure.md ## 输出规范 - 保持严谨且非临床语调。 - 最终报告中勿用 emoji。 - 将结果呈现为最佳适配假设,而非绝对真理。 - 务必包含至少一节“为何不是相邻类型”。