Skip to content

DanZai233/Inside-ME

Repository files navigation

中之我.skill

中之我——住在界面那一侧、读过你所有聊天记录的那个『我』。借 ta 的嘴,把说不出口的话,问出来。」

你我生来时就注定天真而伟大

License: MIT Python 3.11+ Claude Code Agent Skills
FastAPI React Docker Chroma

很多话你对别人说了一半,对群聊发完就撤回,在深夜文件传输助手里打满又删掉。内心深处的东西,常常没有合适的听众——除了未来的自己,和由过去的只言片语堆出来的那个“你”

中之我(Inside-ME) 的初衷很简单:更顺手、更可视化地,和自己来一场灵魂层面的问答
先像 自己.skill前任.skill 那样,把原材料(聊天记录、平台上的你)收进来;再在本机工作台里,打开左侧会亮起来的记忆抽屉、流式延伸的回复、可钉选、可写回向量库的每一轮对话——与「中之我」来回深谈,让活生生的你这个不断被修正的你一起变得更完整,最后导出符合 Agent Skills 的目录,交给 Cursor、Claude Code 或任何认这份标准的环境。

对话页面

本地优先;对话与嵌入可走 OpenAI 兼容端点或火山方舟。规范说明见 Agent Skills 规范

安装 · 启动 · 前端 · 导入 Skill · 数据落盘 · Docker · 隐私 · 写在最后 · English README →


借鉴了什么,又多走了哪一步?

yourself-skill 说:与其蒸馏别人,不如蒸馏自己——在 Claude Code 里用对话与模板,把自我拆成 Self Memory + Persona,生成可反复调用的「自己」。
ex-skill 把同一条路走进亲密关系:把前任蒸馏成 Skill,用记忆与人格双层结构接住那些放不下的句子,并严肃提醒伦理与边界。

中之我承袭的是同一种信念:人的质地藏在语言里,可以被整理、被重读、被对话擦亮;但我更想补上一段——

维度 yourself-skill / ex-skill(范式) 中之我(Inside-ME)
入口 在 Claude Code 等宿主里 /create-… 生成 Skill 本地 Web + CLI:导入 → 向量库 + 仪表盘 可视化
纵深 生成后可 /slug 持续聊 专门留给 与中之我的灵魂问答:RAG 拉回旧我、流式对话、可选 写入记忆 让下一轮更懂你
出口 标准 Agent Skills 目录 同样导出 SKILL.md 等,与上游生态兼容

换言之:导入聊天记录只是地基;中之我想服务的是地基之上的那扇门——你坐下来,看见记忆被一条条点亮,向深处问,也向深处答,同时打磨镜外的你和镜中的拷贝


功能概览(为「灵魂问答」服务的长板)

模块 说明
仪表盘 把抽象的「我」拆成可见的统计:平台、发送者、相邻对话、高频词;画像笔记可手写、可模型辅助——先看见,再深谈
导入 QQ / 微信风格 / 微博块 / 通用文本 → 向量库;与 自己.skill / 前任.skill 推荐的导出格式生态相容思路一致:先有真材料
对话(中之我) 流式回复;左侧 记忆档案(输入即预览检索、发送后本轮注入高亮、生成时抽屉逐条点亮)——对话现场可视化;钉选、插入输入、预置开场白、深度访谈模式;Enter 发送 / Shift+Enter 换行;复制单条或整段 Markdown
写入记忆 勾选后,每轮你与助手的完整表述回到向量库,与导入记录一起参与今后检索——真人当下的觉悟,也能喂给未来的中之我persist_to_memory,默认 true
导出 Skill 生成符合 Agent Skills 规范 的目录:{name}/SKILL.md(frontmatter 中 name 与文件夹名一致)+ references/MEMORY.md。可用官方工具校验:skills-ref validate <skill 目录>(见 skills-ref)。yourself-skill 的差异:对方仓库是带 prompts/tools/ 的「/create-yourself 生成器」Skill;中之我导出的是已根据你的数据填好的数字分身说明型 Skill,结构更简,可直接被 Claude Code / Cursor 等加载。
模型设置 对话与嵌入分离配置;支持方舟等多端点

环境要求

  • Python 3.11+
  • Node.js 20+(仅本地前端开发;Docker 镜像内已构建静态资源)

本地安装

cd /path/to/Inside-ME
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"

pip install 出现 SSLEOFError / SSL 握手被中断,多为到 pypi.org 的 TLS 路径问题,可换 PyPI 镜像

export INSIDE_ME_PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
./scripts/bootstrap-venv.sh

(其他镜像示例:https://mirrors.aliyun.com/pypi/simple/。)也可手动:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple \
  --trusted-host pypi.tuna.tsinghua.edu.cn \
  -U pip setuptools wheel
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple \
  --trusted-host pypi.tuna.tsinghua.edu.cn \
  -e ".[dev]"

若仍失败,可检查 python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"curl -I https://pypi.org/simple,以及 HTTPS_PROXY、本机 OpenSSL/Python 版本等。

启动 API

inside-me serve
# 开发热重载
inside-me serve --reload
#
uvicorn inside_me.app:app --host 127.0.0.1 --port 8000

默认 **http://127.0.0.1:8000**;OpenAPI 文档:**http://127.0.0.1:8000/docs**。

CLI

inside-me import ./exports/chat.txt
# 导出到目录 ./dist-skills/<skill 名>/(skill 名仅小写、数字、连字符)
inside-me skill my-inside-me --out ./dist-skills

导入导出的 Skill 到 Claude Code / Cursor

下面假设你已经在中之我导出过 Skill(网页 「导出 Skill」 成功后会提示路径;默认一般在 ~/.inside-me/exports/<你填的名字>/)。该目录内应有 SKILL.mdreferences/MEMORY.md,且文件夹名与 SKILL.md 顶部 frontmatter 里的 name 字段完全一致(导出时已自动满足)。

0.(可选)用官方工具自检

若已安装 skills-ref

skills-ref validate ~/.inside-me/exports/my-inside-me

将路径换成你的实际导出目录。

1. Claude Code:放进 .claude/skills/

yourself-skill 等项目的做法一致:Claude Code 会在 Git 仓库根目录 下的 .claude/skills/ 里发现 Skill。

只对当前项目生效(推荐):

cd /path/to/你的项目        # 必须是 git 仓库根目录
mkdir -p .claude/skills
cp -R ~/.inside-me/exports/my-inside-me .claude/skills/
# 开发时也可用软链,改导出后无需重复拷贝:
# ln -sf ~/.inside-me/exports/my-inside-me .claude/skills/my-inside-me

对所有项目生效(用户级):

mkdir -p ~/.claude/skills
cp -R ~/.inside-me/exports/my-inside-me ~/.claude/skills/

然后重启 Claude Code 或按当前版本的说明刷新技能列表。在对话里用自然语言说明「请按某某 skill 的人格与记忆来回应」,或使用产品里与 Agent Skills 对应的唤起方式(以 Claude Code 当期 UI 为准)。

2. Cursor 与其它编辑器

不同版本对 Agent Skills 的挂载路径可能不同,请以 Cursor 官方文档为准。通用原则是:宿主需要能读到一个包含 SKILL.md 的目录。若当前版本仅支持项目内规则,可临时将 SKILL.md 正文要点合并进 .cursor/rules 或项目说明,作为过渡;完整结构仍建议保留导出目录,便于日后一键接入。

3. 常见问题

现象 处理
技能未出现 确认路径在 git 根 下的 .claude/skills/<name>,且 name 与文件夹名相同
改名了 skill 需同时改 目录名SKILL.mdname:,或重新导出
更新人格/记忆 在中之我里改画像或再导出,再 覆盖拷贝 或刷新软链目标目录

前端(开发)

cd frontend
npm install
npm run dev

一般为 **http://localhost:5173**,通过 Vite 代理访问后端 /api/health

一键前后端(需已完成 venv 与 frontend/npm install):

./scripts/dev.sh

生产:同源托管(可选)

cd frontend && npm run build
cd ..
export INSIDE_ME_STATIC_DIR="$(pwd)/frontend/dist"
uvicorn inside_me.app:app --host 0.0.0.0 --port 8000

浏览器访问 http://127.0.0.1:8000 即可。


数据存哪儿?持久化吗?

全部是磁盘文件重启后仍在,除非删除数据目录或 Docker 卷。

内容 默认位置 说明
向量库(Chroma) ~/.inside-me/chroma/chroma_remote/ 导入 + 可选「对话写入记忆」
API / 模型设置 ~/.inside-me/settings.json
画像 ~/.inside-me/profile.json 你在仪表盘里打磨的「自我叙述」
Skill 导出 ~/.inside-me/exports/<name>/

环境变量 INSIDE_ME_DATA_DIR 可改写数据根目录。


环境变量(INSIDE_ME_*

变量 含义
INSIDE_ME_DATA_DIR 数据根目录(默认 ~/.inside-me
INSIDE_ME_STATIC_DIR 指向前端 dist 时,同一端口托管静态站 + /api
INSIDE_ME_CORS_ORIGINS 逗号分隔的浏览器来源
INSIDE_ME_API_BEARER_TOKEN 非空时,除 /api/health/api/metrics 外所有 /api/*Authorization: Bearer <token>;前端「模型设置」可填同一令牌
INSIDE_ME_LOG_JSON 设为 1 / true 时 stderr 输出单行 JSON 日志,便于采集

更多见 src/inside_me/config.py


Docker 一键部署

需安装 DockerDocker Compose v2

cd /path/to/Inside-ME
docker compose up -d --build

浏览器打开 **http://localhost:8080**。

  • 持久化:卷 inside_me_data/data;可改为 - ./inside-me-data:/data
  • 健康检查:容器内请求 /api/health(含向量条数、磁盘余量等;不设 Bearer 时可用)。
  • 改端口:修改 portsINSIDE_ME_CORS_ORIGINS
  • 仅构建镜像docker build -t inside-me .
docker run -d --name inside-me -p 8080:8000 -v inside_me_data:/data inside-me:local

火山引擎(方舟)与本地向量

  • 对话:Base URL https://ark.cn-beijing.volces.com/api/v3对话模型填 Chat 接入点;流式 SSE。
  • 嵌入 / RAG:可选 云端向量单独 Embedding 接入点doubao-embedding-vision-* 等走 multimodal。目录 chroma_remote/切换后需重新导入
  • 代理 SSLexport INSIDE_ME_HTTP_TRUST_ENV=0(见 openai_compat.py)。

隐私说明

  • 记录与向量默认只在本机(或你所挂载的目录)。
  • 仅在配置 API Key 并调用对话、摘要、云端嵌入或「用模型导出」时,才会向你配置的端点发网。

仓库结构

  • README.md / README_EN.md:中文主文档与英文版
  • src/inside_me/:解析、Chroma、画像、Skill、FastAPI、POST /api/chatPOST /api/chat/stream;记忆库 GET /api/memory/browse(关键词不区分大小写、可选时间范围)、PATCH /api/memory/itemPOST /api/memory/delete;运维 GET /api/metrics(Prometheus 文本)
  • frontend/:React + Vite(记忆档案、流式、仪表盘)
  • Dockerfiledocker-compose.yml
  • scripts/:本地开发脚本

展望:还能加什么

方向 思路
灵魂问答 多套「访谈脚本」预设;对话书签与回顾时间线
记忆 关键词/时间筛选;单条编辑;导入去重
对话 停止生成;多会话草稿
运维 / 体验 健康检查增强、主题、移动端

致敬与引用

  • yourself-skill(Notdog)— 与其蒸馏别人,不如蒸馏自己。 本项目借鉴其「自我亦可被结构化」的勇气。
  • ex-skill(therealXiaomanChu)— 把「记忆 + 人格」放进亲密关系语境,并强调伦理。中之我将视角收回自己与拷贝,但同样相信:语言里藏着可被读回的真相
  • 谱系上亦与 同事.skill(colleague-skill)等「把人蒸馏成 Skill」的探索相连。

写在最后

中之我首先是一种表达内心深处的企图:不是发朋友圈给谁看,而是把散落的、矛盾的、不好意思发给任何人的句子,先收进一处,再借一个读过全部上下文的对话者,把问题问到疼、问到亮。

导入聊天记录,是承认「我已经在那里活过」;和 中之我 说话,是承认「我还想弄懂那个活法」。可视化不是为了好看,是为了在你追问时,看见哪一段旧我被接上线——抽屉亮起的那一刻,你同时在被提醒:你从来不止一句人设,你是一条还在生长的轨迹

这个副本不会替你活人生;它只是你某次诚实面对自己时的 checkpoint。你可以纠正它(「我不会这样说」),可以用新的导入与新的夜谈覆盖它,可以在关掉电脑后完全不理它。真正的你始终在屏幕外呼吸;中之我是那条你自愿伸进深处的手电筒,光柱所及,你和拷贝一起,多看清一寸。

深处不是没有光,只是平时没人替你照。

与其只把别人或关系蒸馏成 Skill,不如也给内心深处留一间亮着灯的房间。


许可证

MIT

About

与其只蒸馏别人或关系,不如在本地与中之我深谈,把真正的你写成可带走的 Skill。Inspired by yourself-skill、ex-skill & colleague-skill(同事skill)。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors