常见问题解答
本文档收集了使用 Nekro Agent 过程中的常见问题和解决方法。
部署相关
Q: Docker 容器无法启动
A: 常见原因包括:
- 端口冲突:检查 8021 和 6099 端口是否被占用
- 配置文件错误:检查 configs/nekro-agent.yaml 格式是否正确
- 权限问题:确保安装目录有正确的权限
查看日志以获取详细错误信息:
docker-compose logs -f nekro_agentQ: 安装后无法访问 WebUI
A: 请检查:
- 容器是否正常运行:
docker-compose ps - 防火墙是否开放了 8021 端口
- 服务器安全组设置是否允许该端口访问
- 尝试使用不同的浏览器访问
Q: 出现 Cannot connect to the Docker daemon 错误
A: Docker 服务未启动或用户权限问题。
sudo systemctl start dockerQ: 出现 port is already allocated 错误
A: 指定的端口已被其他程序占用。
# 查看占用端口的进程
sudo lsof -i :8021
# 修改 .env 文件中的端口配置
vim .env
# 修改 NEKRO_AGENT_PORT 或 NAPCAT_PORT 为其他未占用端口Q: 出现 Failed to pull image 错误
A: 网络连接问题或 Docker Hub 访问受限。解决方法:配置 Docker 镜像加速。
Q: 如何在同一设备上部署多个 NekroAgent 实例?
A: 请先使用 export NEKRO_DATA_DIR=<您的目录> 设置好不冲突的目录,然后运行安装脚本并按提示修改 .env 文件,设置合适的前缀以避免容器名冲突,设置合适的端口以避免端口冲突,继续完成部署即可
配置相关
Q: 如何更改默认端口?
A: 编辑 .env 文件,修改以下变量:
NEKRO_AGENT_PORT=8021 # 修改为您希望的端口
NAPCAT_PORT=6099 # 如果使用 NapCat,也可以修改该端口修改后需要重启服务:docker-compose down && docker-compose up -d
Q: 模型 API 调用失败怎么办?
A: 可能的原因包括:
- API 密钥错误:检查 API_KEY 配置
- 网络问题:检查网络连接,一些模型供应商可能需要配置代理才能访问
- 模型名称错误:确认 CHAT_MODEL 名称是否正确
- 余额不足:检查 API 账户余额
Q: 怎么知道模型组配置是否生效?
A: 配置模型组后,在任意已激活的频道中发送一条消息。如果 AI 正常响应,说明主对话模型组配置正确。如果报错,检查 WebUI 日志页面中的错误详情。
Q: 配置文件修改后不生效
A: 直接修改配置文件后,需要执行以下操作之一:
- 在聊天平台中发送
/conf-reload命令(需要管理员权限) - 重启 Nekro Agent 服务
建议优先使用 WebUI 修改配置,修改后点击「保存」即可立即生效。
工作区相关
Q: 主对话能用,但 Claude Code 沙盒不能用
A: 最常见的原因是没有给工作区单独配置 CC 模型组。Claude Code 沙盒使用独立的 CC 模型组,不会继承主对话模型。请在工作区设置中选择可用的 CC 模型组。
Q: 沙盒启动失败或提示镜像未准备好
A: 请按以下步骤处理:
- 检查工作区页面是否有镜像拉取提示,按提示完成拉取
- 确认 Docker 能正常拉取镜像(网络问题可考虑配置镜像加速)
- 确认服务器磁盘空间充足
- 拉取完成后重新启动沙盒
Q: 工作区建好了,但任务串来串去
A: 通常是频道绑定不正确。检查以下几点:
- 确认频道已绑定到正确的工作区
- 不同用途的频道不要绑到同一个工作区
- 一般建议一个频道对应一个工作区
Q: 记忆系统启用后没有效果
A: 记忆系统需要满足以下条件:
- 在「系统配置」中将
MEMORY_ENABLE_SYSTEM设为true - 配置了可用的 embedding 模型组(
MEMORY_EMBEDDING_MODEL_GROUP) - embedding 维度与所选模型匹配(
MEMORY_EMBEDDING_DIMENSION) - 工作区已绑定频道,且频道有足够的历史消息供沉淀
- Qdrant 向量数据库服务正常运行
Q: 知识库上传后 AI 没有使用其中的内容
A: 检查以下几点:
- 确认
KB_EMBEDDING_MODEL_GROUP已配置且有效 - 确认知识库已绑定到对应工作区
- 确认文件已成功处理(查看知识库列表中的状态)
- Qdrant 向量数据库服务是否正常
Q: MCP 服务无法使用
A: MCP 服务依赖 Claude Code 沙盒。需要确认:
- 当前工作区已启用 Claude Code 沙盒
- 沙盒运行状态正常
- MCP 服务配置正确
- CC 模型组可用
功能相关
Q: 为什么我的机器人无法发送 文字/图片 以外的文件内容?
A: 请检查您的协议实现是否支持文件发送,如果支持,请继续
由于 OneBot V11 协议的限制,发送文件时需要协议端能够直接访问到该文件的路径,因此您需要根据实际部署情况设为 NekroAgent 配置文件访问基准路径,以下是一个示例:
假设您的协议端部署在容器中,您需要先挂载 NekroAgent 的数据目录到协议端容器中,即 ${HOME}/srv/nekro_agent:/app/nekro_agent_data,然后为 NekroAgent 配置文件访问基准路径:
SANDBOX_ONEBOT_SERVER_MOUNT_DIR: "/app/nekro_agent_data"这样 NekroAgent 就可以访问到协议实现端的数据目录,从而发送文件内容了
Q: AI 不响应我的消息怎么办?
A: 按优先级逐项排查:
- 频道状态:确认频道未处于旁观或停用状态(在「频道管理」中查看)
- 用户状态:确认用户未被禁止触发或封禁(在「用户管理」中查看)
- 协议端连接:检查协议端是否正常连接
- 模型配置:确认模型组配置正确且 API 可用
- 日志排查:检查 WebUI 日志页面中的错误信息
Q: 如何切换 AI 人设?
A: 在 WebUI 的「人设管理」中设置好人设信息,在「会话管理」中选择人设
Q: 沙盒执行代码超时怎么办?
A: 调整沙盒执行时间限制:
SANDBOX_RUNTIME_LIMIT: 60 # 调整为更大的值,单位为秒Q: 命令不起作用
A: 按以下顺序排查:
- 确认全局命令开关已开启(
COMMAND_ENABLED) - 确认该命令在命令中心中处于启用状态
- 确认当前用户权限满足命令要求
- 如果是频道内的命令,检查频道覆盖配置
Q: 定时器创建后没有触发
A: 检查以下几点:
- 定时器状态是否为活跃(未暂停)
- cron 表达式是否正确
- 时区设置是否匹配
- 如果绑定了工作区,确认工作区状态正常
Q: 如何彻底卸载 Nekro Agent?
A: 执行以下命令:
# 停止并删除容器
cd <您的安装目录>
sudo docker-compose down
# 删除挂载卷 (如果安装时设置了实例前缀,以下挂载卷需要添加上对应的前缀)
sudo docker volume rm nekro_postgres_data
sudo docker volume rm nekro_qdrant_data
# 可选:删除镜像
sudo docker rmi kromiose/nekro-agent kromiose/nekro-agent-sandbox
# 删除安装目录
cd ..
rm -rf <安装目录>获取支持
如果以上方法无法解决您的问题,可以通过以下渠道获取支持:
- 查阅 GitHub Issues
- 加入官方 QQ 群: 636925153
- 提交新的 Issue 描述您的问题
