智能体
服务信息
- 服务名:agent
- 说明:为ATRI-LK项目专门设计的智能体系统,提供AI聊天、记忆管理、用户画像、功能调用、技能查阅等能力
- 限定权限:主人(MASTER)
命令列表
- /agent.reload:重新加载agent配置(主人)
- /agent.总结记忆:总结所有用户的记忆(主人)
功能说明
核心能力
智能体系统为聊天插件(lkchat)提供底层AI能力支持:
- 长期记忆:自动记住与用户的对话内容和重要信息
- 用户画像:根据交互自动构建用户兴趣和偏好
- 词语解释:支持自定义词语解释,AI聊天时会参考
- 功能调用:支持网络搜索、图片识别、日程管理等功能
- 技能:让智能体按需查阅玩法/操作说明文档
- Token统计:统计模型调用的Token消耗,并给出缓存命中率与按计费配置估算的费用
记忆系统
智能体具备长期记忆能力,可以记住与用户的对话内容和重要信息。记忆会自动总结并存储,在后续对话中可能会被引用。
- 记忆会自动遗忘过旧的内容
- 可以通过命令查看、删除或清空记忆
- 记忆与用户ID绑定,不同用户的记忆相互独立
- 使用
/agent.总结记忆可以手动触发记忆总结任务
用户画像
智能体会根据与用户的交互自动构建用户画像,包括用户的兴趣、偏好、性格特征等。
- 画像会随着对话自动更新
- 可以通过命令查看或重置画像
- 画像用于个性化回复风格
功能调用
智能体支持多种功能调用,包括:
- 网络搜索:搜索实时信息
- 图片识别:识别图片内容
- 日程管理:管理亚托莉的日程安排
- 表情发送:发送亚托莉表情包
- 词语解释:解释特定词语或概念
- 技能查询:列出可用技能并读取其正文
功能调用可以在 WebUI 的 智能体 →「功能调用」标签页里逐个开关,并查看每个功能的"环境可用性"(例如是否缺少 tool 类型模型)。详见 技能与功能调用配置。
其中 stop_thinking(结束本次思考)与 send_message(发送消息)是核心功能:它们维持对话闭环,标记为「核心」且开关恒为开、不可关闭。若在 agent_config.json 里手写把它们加进禁用列表,重载后会被自动剔除。
功能插件
功能插件把若干技能与功能调用打包成一个整体,在 WebUI 的 智能体 →「功能插件」标签页里一键开关:
- 插件关掉时,它名下的技能与功能调用同时失效(技能自己开着也没用);
- 插件内的技能只能开关,不能新建、编辑、删除或设置内嵌;
- 插件内的技能与功能调用不会出现在「技能」「功能调用」页,各自在插件页有独立的「启用」开关;
- 插件内的功能调用可以单独关掉(不常用功能关掉后会从
call的清单里消失); - 插件可以声明不常用功能调用:这类功能不进提示词,由智能体通过
call按需调用,用法通常写在技能正文里。
内置插件目前只有 file_ops 一个:
| 插件 | 技能 | 功能调用 |
|---|---|---|
file_ops | file_ops(插件提供) | get_dir_tree、read_file(均为不常用) |
file_ops 是典型的"自查类"插件:查目录树与读文件只在智能体需要读代码/配置时用得上,平时不该占用每轮提示词,所以全部标为不常用,由 call 按需触发。关掉这个插件,两个功能与它的技能会一起停用。
它的技能正文放在插件自有目录 res/data/agent/function_plugins/file_ops/,不在通用技能目录里,因此技能页看不到它——完全由插件管理。
其它玩法说明(farm、fishing、checkin、chat_group)是普通内置技能,放在 res/data/agent/skills/,由技能系统直接扫描,在技能页可见、可开关,并不属于任何功能插件。
技能
技能是给智能体查阅的玩法/操作说明文档(Markdown),避免把长说明塞进每轮提示词。
- 内置技能随机器人分发,位于
res/data/agent/skills/,只读、不可删除; - 用户技能可通过 WebUI 新建,位于
data/plugins/agent/skills/; - 同名用户文件会覆盖内置,列表显示为"内置(已修改)",删除该用户文件即恢复内置正文;
- 每个技能有两个独立开关:启用(决定能否被发现/查询)与内嵌(正文直接进入每轮提示词,且不可被查询)。
在 WebUI 的 智能体 →「技能」标签页可以完成查看、新建、编辑、恢复内置、删除与开关操作。详见 技能与功能调用配置。
模型管理
智能体支持多个AI模型,可以根据需要切换:
- 支持OpenAI兼容接口
- 支持Gemini接口
- 支持自定义模型提供商
- 可以为不同任务配置不同模型(chat/tool/image/embedding/tts)
- 可以为模型配置计费单价(
pricing,元/1M tokens),用于 Token 用量页的费用估算 - 模型输入输出会单独记录在
data/logs/llm,日志文件直接放在该目录下,每次启动新建一份,滚动保留最近 3 次启动的日志,单文件最大 10MB
配置说明
智能体的配置文件位于 data/config/plugins/agent_config.json:
max_history:最大历史消息数(默认30,包含Agent自己发送的消息)max_thinking_times:最大思考次数(默认20)search:网络搜索配置enable:是否启用搜索provider:搜索提供商(如tavily)api_key:搜索API密钥
function_calling_disable:被禁用的功能调用名列表(建议用 WebUI 操作;stop_thinking/send_message写进去也会被自动剔除)function_plugin_disable:被禁用的功能插件名列表(建议用 WebUI 操作)skills_disable:被禁用的技能名列表(建议用 WebUI 操作)skills_embed:内嵌进提示词的技能名列表(建议用 WebUI 操作)
后四项只记录例外(关闭的功能插件/功能/技能、内嵌的技能),清空即恢复默认。开关状态重启后依然生效。
模型配置位于 data/config/system/provider.yml,可以配置多个模型提供商和模型。
注意事项
- 智能体需要配置至少一个可用的聊天模型才能正常工作
- 记忆和画像功能会消耗额外的API调用
- 功能调用需要相应的模型支持(如工具调用模型)
- 建议根据实际需求调整记忆保留数量,过多会增加上下文长度
- 模型输入输出日志位于
data/logs/llm,包含完整的提示词与回复,注意不要随意外发 - 关闭
list_skills会让智能体无法得知任何非内嵌技能,除有意外请保持开启 - 内嵌技能会让正文每轮进入提示词,只适合短小的强制规范类内容