常见问题
连接与鉴权
Agent 连接失败 "Invalid agent secret"
确保 Agent 的 AGENT_SECRET(或 --secret 参数)与服务器 .env 中配置一致。如果在 设置 → 安全 里设置了用户级 Agent Secret,该用户的会话会优先用用户级密钥(覆盖全局 AGENT_SECRET)。
服务器启动失败 "SECURITY CONFIGURATION ERROR"
生产模式下必须修改默认 JWT 密钥:
JWT_SECRET=随机字符串(至少32位)可用命令生成:openssl rand -base64 32
Docker 部署后 502 Bad Gateway
- 检查容器是否运行:
docker compose logs webchat - 刷新 nginx DNS 缓存:
docker exec nginx nginx -s reload
SQLite 只读错误 (SQLITE_READONLY)
确保数据目录权限正确:
sudo chown -R root:root ./dataTOTP 设置后无法登录
TOTP 码有时间窗口限制(默认 ±30 秒),确保服务器和手机时间同步。
选择后端
新建会话弹窗里"Claude Code" / "Copilot"消失了
Agent 启动时会做后端能力检测。某个后端不出现,说明对应 CLI 在 agent 机器上不在 PATH 里或者没鉴权:
- Claude Code 消失 → 在 agent 机器上跑
claude --version;失败的话装@anthropic-ai/claude-code然后claude login - Copilot 消失 → 跑
copilot --version;失败的话装 GitHub Copilot CLI 然后copilot auth login - Yeaft Code Agent 消失 → 极少见;引擎是打包好的。试着
yeaft-agent upgrade升级。
装好/鉴权新 CLI 后要重启 agent — 能力检测只在启动时跑一次。
Claude Code、Copilot、Yeaft Code Agent 选哪个?
详见 选择会话后端。简短版:
- Claude Code —— 1:1 聊天,全套 Claude 工具
- Copilot —— 1:1 聊天,想对比 Claude vs GPT 模型 / 已有 Copilot 订阅
- Yeaft Code Agent —— 多 VP 并行协作 + 当前 Session 的持久历史
Copilot 模式
"Permission required" 弹窗反复出现
Copilot CLI 跑 --acp 模式时,每个 session 第一次执行 shell 命令或改文件前都会请求授权。选 Always allow this session 在本 session 后续不再问;选 Always allow 在同一台 agent 机器上记住下次也允许。
Copilot 模式能选 Claude / GPT 以外的 model 吗?
只能使用 Copilot CLI 暴露的 model。需要其他 vendor 时使用 Yeaft Code Agent,并在所选 Agent instance 解析出的 config.json 添加 provider。
Copilot 说"未鉴权",但我 VS Code Copilot 是登录的
CLI 用的 OAuth token 和 IDE 插件不是同一个。在 agent 机器上跑 copilot auth login 单独给 CLI 鉴权。
Yeaft Code Agent
插件页显示工具和技能都是 0,是否表示 Agent 没有能力?
不一定。旧实现依赖已初始化的原生 Session,在线但尚未启动原生运行时的 Agent 可能返回空目录。当前实现直接发现内置工具、内置及用户 Skills;所选 Agent 与当前 Session 匹配时还会读取该 Session 工作目录中的项目 Skills,不需要先发送消息,也不会为了读取目录启动推理或连接 MCP。
加载中、加载失败和空目录会分别显示,不再将空目录标为“已启用全部可用能力”。旧 Agent 仍可能返回空目录,需要升级 Agent 端才能修复目录发现。MCP 数量为 0 可以是正常情况:插件页只列出该 Agent 自有的 MCP 配置,不是运行时合并外部用户及项目配置后的完整连接清单。插件选择作用于 Yeaft 原生引擎,不是 Claude Code / Copilot CLI 的统一权限设置。
发消息时报 "No LLM provider configured"
编辑所选 Agent instance 解析出的 config.json,添加至少一个 provider entry;路径和 schema 见 Yeaft 引擎配置。primaryModel 必须存在于 providers[].models。
VP 好像不记得上次说过的话
Dream/H2-AMS 持久召回已退役。原生 turn 使用当前 Session transcript 的有界窗口,不读取旧 memory segment 或兄弟 Session summary。已有 memory 文件仍保留在 Agent 上,但不会读取或注入。参见已退役的 H2-AMS 实现。
@mention 没有 fan-out 到多个 VP
要逐个显式 mention:@designer @dev 帮我看下这个布局。Mentions 在 fan-out 前解析 —— 没被 @ 到的 VP 不会回。完全不 @ 任何人,由 group 的默认路由规则决定谁回答。
旧 VP memory 文件还在吗?
记忆位于 Agent 机器的 <resolvedYeaftDir>/memory/<scope>/memory.md(每个 scope 一个 memory.md,包含多个 segment)。Default instance 对应 ~/.yeaft/memory/...;named <name> 对应 ~/.yeaft/instances/<name>/memory/...;显式 YEAFT_DIR / --yeaft-dir 则使用该 custom root。文件是普通 markdown,可用于数据追溯;当前 runtime 不读取或注入这些文件。
Yeaft 引擎配置
Yeaft config.json 在哪?
在 Agent 机器上,不在 Server。Default service instance 使用 ~/.yeaft/config.json;named <name> 默认使用 ~/.yeaft/instances/<name>/config.json。Named/custom instance 调用 yeaft-agent llm 时必须显式传 --config。
同一个 provider 能既配 Claude 又配 GPT 吗?
可以 —— 用 per-model protocol 覆盖:
{
"name": "github-copilot",
"baseUrl": "https://api.githubcopilot.com",
"credentialProvider": "github-copilot",
"protocol": "openai-responses",
"models": [
{ "id": "claude-sonnet-4.5", "protocol": "anthropic" },
"gpt-5"
]
}热加载 —— 改 config.json 要重启 agent 吗?
Agent 在下一个 turn 重新读取其 resolved instance config,因此 model/provider 改动通常无需重启;language、debug 和全局 limit 可能需要重启。
Agent 自动升级
# 升级 package;Unix named service 随后必须显式重启
yeaft-agent upgrade --name worker-a
yeaft-agent restart --name worker-a
# 启动时检查
yeaft-agent --auto-upgrade --server wss://...服务器也可通过 AGENT_LATEST_VERSION 环境变量给 Agent 推升级通知。