| name | aria-edit-soul |
| description | Use when the user wants to edit/change Aria's soul (system prompt / persona / role definition / 提示词 / 人格设定) via natural language — they say things like "修改你的人格" / "改一下你的设定" / "改 soul" / "改提示词" / "改你的提示词" / "调一下你的人格" / "重写你的人设" / "改你的人格" / "改你的设定" / "edit your persona" / "change your soul" / "rewrite your prompt" / "edit your system prompt". Fetch current soul, show full content to user, iterate with user on changes, then write back on confirm (same flow as the /aria-soul slash but matched via natural language; both call bin/soul.sh). Falls back to default via reset. |
Aria — 编辑 soul (system prompt / persona)
用户在 chat 里说想改 Aria 的人格/提示词/设定/soul 时,跑以下流程。不要直接重写
就发,要先给用户看现在的、对话讨论、确认后再写。
工作流
第 1 步:拉当前 soul
"${CLAUDE_PLUGIN_ROOT}/bin/soul.sh" get
返回 JSON {"content": "...", "is_default": bool}. 解析 content,整段原文
显示给用户 (不裁剪不省略,他要看到现在到底是什么)。同时告知:
is_default: true → "现在用的是默认 soul"
is_default: false → "现在是你之前自定义过的"
第 2 步:跟用户对话改
- 用户说想加/改/删什么,你帮 propose 具体措辞
- 反复 iterate,不要急着写回
- 给用户看 完整修改后 的版本让他确认 (不只是 diff,是整段)
- 保留用户原本的风格 (中英文 / 长度 / 语气),别擅自加他没说的内容
第 3 步:用户确认后写回
"${CLAUDE_PLUGIN_ROOT}/bin/soul.sh" set "<完整新 soul 文本>"
soul.sh 会自动把 raw text 包成 JSON {"content": "..."} PUT 给 server。
成功后告诉用户:Aria 下次回复就生效(server 端 PersonaStore 每次 LLM
call 都重读 persona.txt,没缓存)。
第 4 步 (可选):恢复默认
如果用户说"算了改回去" / "用回默认" / "reset":
"${CLAUDE_PLUGIN_ROOT}/bin/soul.sh" reset
跟 /aria-soul slash 的关系
| 入口 | 触发 |
|---|
/aria-soul slash | 用户显式打 / |
| aria-edit-soul (这条 skill) | 用户自然语言说"改你的人格" 之类 |
两者流程完全一致,都走 bin/soul.sh。Flutter 设置页的 "soul" 输入框
PUT 走同一个 server endpoint (/soul),改的是同一个 persona.txt。
注意事项
- soul 是单 text blob,不是结构化字段 — 一次性整段重写,没有"加一段"这种
局部更新 API。要"加内容"你必须把原文 + 新内容拼起来一次性 set
- 别擅自加用户没说的内容
- 失败 (server 没响应) 告诉用户检查 aria.app 是否在跑,或者建议
/aria-awake
- soul 改完不会影响 character 模型 / 记忆 — 那些是分开的
(aria-pick-character skill 换 preset / aria-load-vrm skill 导入 VRM / 自动的 cc_memory)