mirror of
https://github.com/jie65535/JChatGPT.git
synced 2026-09-15 02:56:10 +08:00
Add global skill system for self-accumulated knowledge
Introduce a cross-group skill system that lets the bot distill reusable
knowledge into markdown docs and load them on demand, keeping day-to-day
context pollution low.
- SkillStore manages data/skills/*.md files with name/description
frontmatter and an in-memory index cache (rebuilt on init/reload)
- Only the skill index (name + one-line description) is injected via the
new {skills} system-prompt placeholder; bodies load on demand
- New tools: loadSkill / saveSkill (upsert, iterate = load+overwrite) /
deleteSkill, gated by PluginConfig.skillsEnabled
- Skill names validated against ^[A-Za-z0-9_-]+$ to prevent traversal
- Wire SkillStore.init into onEnable and refresh on /jgpt reload; add
/jgpt skills listing command
- Bump version to 1.12.0; update README
Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
@@ -52,7 +52,7 @@ object JChatGPT : KotlinPlugin(
|
||||
JvmPluginDescription(
|
||||
id = "top.jie65535.mirai.JChatGPT",
|
||||
name = "J ChatGPT",
|
||||
version = "1.11.0",
|
||||
version = "1.12.0",
|
||||
) {
|
||||
author("jie65535")
|
||||
// dependsOn("xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin", true)
|
||||
@@ -82,6 +82,9 @@ object JChatGPT : KotlinPlugin(
|
||||
// 初始化 token 使用日聚合存储(独立 JSON 文件,绕开 yamlkt 大数据 bug)
|
||||
TokenUsageStore.init(dataFolder)
|
||||
|
||||
// 初始化技能存储(data/skills/ 下的 markdown 文件,全局跨群)
|
||||
SkillStore.init(dataFolder)
|
||||
|
||||
// 设置Token
|
||||
LargeLanguageModels.reload()
|
||||
|
||||
@@ -269,6 +272,12 @@ object JChatGPT : KotlinPlugin(
|
||||
} else memoryText
|
||||
}
|
||||
|
||||
replace("{skills}") {
|
||||
if (PluginConfig.skillsEnabled) {
|
||||
SkillStore.buildIndexPrompt()
|
||||
} else "暂无技能"
|
||||
}
|
||||
|
||||
replace("{meme}") {
|
||||
memePrompt?.let { return@replace it }
|
||||
|
||||
@@ -928,6 +937,15 @@ object JChatGPT : KotlinPlugin(
|
||||
// 记忆修改
|
||||
MemoryReplace(),
|
||||
|
||||
// 技能:加载
|
||||
LoadSkill(),
|
||||
|
||||
// 技能:沉淀/迭代
|
||||
SaveSkill(),
|
||||
|
||||
// 技能:删除
|
||||
DeleteSkill(),
|
||||
|
||||
// 搜索聊天历史
|
||||
SearchChatHistory(),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user