72 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PicoBot 常见问题
## Q: 如何切换模型?
修改 `config.json``agents` 配置,指定不同的 `provider``model`。如需新的 provider`providers` 中添加对应 API 配置。
## Q: 如何添加新的渠道?
`config.json``channels` 中添加新条目。目前支持飞书 (feishu)CLI 客户端无需配置。
## Q: 如何安装 skill
将包含 `SKILL.md` 的目录放入 `~/.picobot/skills/`,程序自动检测。也可通过 agent 在 workspace 的 `skills/` 下创建新 skill。
## Q: 为什么 get_skill 找不到某个 skill
确保 skill 目录中有 `SKILL.md` 文件,且文件头有正确的 frontmattername、description。用 get_skill action="list" 查看当前加载的所有 skill。注意同名 skill 按目录优先级覆盖。
## Q: 内置的 about-picobot 文档在哪里?
`~/.picobot/skills/about-picobot/`SKILL.md 为索引references/ 下为各详细文档assets/ 下为 config 示例。如被删除,重启程序自动重新安装。
内置 Skill 只在目标目录不存在时释放,不会覆盖已安装目录。升级 PicoBot 后如需获取新版内置文档,应先备份自己的修改,再删除旧的 `~/.picobot/skills/about-picobot/` 并重启。也可把定制版放在 `{workspace}/skills/about-picobot/`,它的优先级更高。
## Q: Docker 部署如何获取 WebUI 设备配对码?
在 Gateway 容器内执行:
```bash
docker compose exec picobot picobot pair --gateway-url http://127.0.0.1:19876
```
使用 `docker-compose.test.yml` 时增加 `-f docker-compose.test.yml`。签发接口要求请求来自 Gateway 的真实回环地址,并校验 `/app/.picobot/web_admin_token`;因此不要从宿主机经发布端口直接请求,也不要复制或输出管理密钥。代码为 8 位、5 分钟有效且只能使用一次。
## Q: 数据库文件在哪里?
默认 `{config_dir}/data/picobot.db``config_dir` 默认 `~/.picobot`,与 workspace 相互独立。
## Q: 如何禁用某个 skill 或 MCP 服务器?
Skill 安装后默认启用,可在 WebUI「工具 → Skills」页用开关禁用禁用状态记录在 `~/.picobot/skills_state.json`,被禁用的 skill 不再进入提示词、列表和 `get_skill`。MCP 服务器在配置 `mcp.servers[].enabled`(默认 true中控制可在 WebUI「工具 → MCP」页开关关闭后下次启动/重载时不连接该服务器。
## Q: 如何查看历史会话?
使用 `chat_manager` 工具:`action="list_sessions"` 列出会话,`action="list_messages"` 查看指定会话消息,支持 offset 翻页、before_time/after_time 时间范围过滤。
## Q: 如何创建定时任务?
使用 `cron_add` 创建,`cron_list` 查看,`cron_update``cron_enable``cron_disable``cron_remove` 管理。Schedule 类型为 `at`Unix 毫秒时间戳)、`every`(毫秒间隔)或 6 段 `cron` 表达式,可指定 IANA 时区。
## Q: 上下文压缩是什么意思?
对话接近模型 token 限制时PicoBot 用一份累计 checkpoint 摘要替代 Provider 上下文中的旧前缀,并原样保留近期消息尾部。原始消息和工具结果仍永久保存在聊天历史/SQLite 中,只是不再永久占用模型上下文;语义摘要还可通过 `timeline_recall` 检索。自动阈值采用窗口减 reserve 的机制,摘要输入按当前模型窗口动态限制而非固定 32K换成更小模型后若历史已经超限会在首次普通模型请求前压缩或明确降级。`/compact` 可在阈值前手动强制执行。
## Q: 如何修改 gateway 监听端口?
`config.json``gateway.port` 中设置,重启网关生效。默认 19876。
## Q: 如何查看 LLM 调用日志?
LLM 调用记录存储在 `llm_calls` 表中。可通过 SQLite 客户端直接查询,或在代码中通过 storage 模块访问。
该表可能包含完整用户消息、工具参数和模型响应,按敏感数据处理;不要直接上传或粘贴到公开 issue。
## Q: 为什么修改了某些 memory 配置却没有看到行为变化?
当前 `recall_limit``idle_consolidation_minutes``timeline_retention_days``max_failures_before_degrade` 都能被配置解析,但每轮 Knowledge 召回仍固定为 5自动 idle consolidation、Timeline 清理和失败降级循环尚未接入。以当前代码行为为准。
## Q: Gateway 为什么无法立即退出?
正常关停会先停止渠道,再取消受 TaskSupervisor 管理的后台任务,并最多等待 10 秒。飞书自身另有 5 秒连接任务兜底。如果持续超过这些上限,应检查是否新增了未受监督的 `tokio::spawn`、不可取消的外部 I/O或没有 timeout 的 JoinHandle 等待。