AstrBot 人格自更新插件
该插件通过工具调用驱动的 Agent 流程,让 LLM 自动读取并更新 AstrBot 中的指定人格设定,适用于需要频繁迭代 persona 配置的场景。
⚠️ 强烈建议使用前备份人格数据,以防模型修改产生不可逆差异。
本插件基于astrbot4.0+框架进行开发
功能特色
/人格更新命令触发独立 Agent,让模型根据指令调整系统提示、开场白、工具列表等字段。- 内置
get_persona_detail、update_persona_details两个函数工具,模型会先读取现有配置再执行改动,避免误操作。 - 自动返回更新后的完整人格信息,方便确认改动内容。
安装与启用
- 将插件目录
astrbot_plugin_personal_selfupdate放入 AstrBot 的data/plugins/目录。 - 在 AstrBot 后台启用插件,或在配置文件中加载该插件。
- 确保已有可用的 LLM Provider,并在 AstrBot 中完成账号/密钥配置。
配置项
在插件 metadata.yaml 或 AstrBot 后台中可设置以下字段:
provider:指定使用的 Provider ID。留空则使用当前会话默认 Provider。model:模型名称,传递给 Provider。如果留空将由 Provider 决定默认模型。
使用方法
在聊天窗口输入命令:
/人格更新 <人格ID> <更新要求>
示例:
/人格更新 伯特 请让他的语气更专业,增加一次问候开场
插件将分为四步执行:
- 调用
get_persona_detail获取现有人格。 - Agent 分析差异并规划更新。
- 调用
update_persona_details写回最新配置。 - 返回修改摘要及更新后的字段,供用户确认。
注意事项
begin_dialogs需要偶数条记录,模型会按“用户/助手”交替排列;若数量不正确,底层会重置为空列表。- 若人格 ID 不存在或数据库不可写,插件会返回详细错误信息,请按照提示排查。
- Agent 会在最终总结前输出
[AGENT_DONE]标记,插件据此判断流程完成。 - 推荐在测试环境先验证效果,再应用到生产人格。
常见问题
- 模型没有调用更新工具怎么办? 请尝试换用更可靠的模型。
- 更新结果与预期不符? 可再次运行命令并在指令中给出更具体的修改要求。例如:“保留原有问候语,仅将语气改为正式”。