# Server Connection and Debugging Issues

## 诊断结果

### 实例1（讯飞 API - astron-code-latest）

**核心问题：API URL 路径重复**  
config.yaml 中 `base_url` 设置为 `https://maas-coding-api.cn-huabei-1.xf-yun.com/v2`，但 Claude Code SDK 会自动在 base_url 后追加 `/v1/messages`，导致实际请求路径变成了 `/v2/v1/messages`——这是一个错误的路径。  
调试日志明确显示：  
`[API REQUEST] /v2/v1/messages source=sdk`  
`[ERROR] Stream completed without receiving message_start event`

**另外**，实例1 的 Hermes Gateway 进程目前没有正常运行，只剩一个空壳 bash wrapper。

---

### 实例2（meai.cloud API - claude-sonnet-4-6）

**核心问题：辅助任务全部超时**  
主 API（meai.cloud）本身是通的，但所有辅助任务（上下文压缩、记忆刷新、会话搜索）使用 `provider: auto`，自动回退到讯飞 API（astron-code-latest），而讯飞 API 响应极慢导致连锁超时：  
`Auxiliary compression: connection error on auto (Request timed out.)`  
`Failed to generate context summary: Request timed out.`

最终导致：  
- 达到最大迭代次数 60/60，被强制停止  
- 会话被压缩2次，精度严重下降  
- 出现未知工具错误 (`Unknown tool 'runbook_generator'`, `Unknown tool 'list'`)
  
---

## 修复方案

需要修改两处配置。你要我现在直接上服务器修复吗？具体修复步骤：  
1. **实例1** 
   - 修改 `base_url`，去掉末尾的 `/v2`，改为 `https://maas-coding-api.cn-huabei-1.xf-yun.com`  
   - 同时重启 Gateway

2. **实例2** 
   - 在 config.yaml 中将辅助任务的 provider 指向 meai.cloud 而非 auto（避免回退到讯飞），同时重启 Gateway

3. 重新启动两个实例的 Hermes Gateway 进程

---

## 当前问题诊断

结合我刚才查看服务器的结果：  
### 实例1（Hermes Gateway，讯飞 API）
- Gateway 进程基本是挂掉的状态，只剩一个空壳 bash wrapper  
- 日志显示讯飞 API 的 auxiliary 任务（压缩、记忆刷新）频繁超时 `Request timed out`

### 实例2（Telegram Bot，meai.cloud API）
- 上次会话最后 bot.py 被 sed 搞乱了，重写没完成  
- 日志同样有大量 `ReadTimeout` 和 `APITimeoutError`  
- 达到了 60 次迭代上限被强制停止

---

要我现在开始修复吗？需要做的事情：  
1. **实例2 bot.py** — 检查/修复上次被 sed 搞乱的代码  
2. **重启实例1的 Hermes Gateway**  
3. **重启实例2的 Hermes Gateway**  
4. **检查讯飞 API 超时问题** — 可能需要调大 auxiliary 任务的 timeout 配置

---

## 问题汇总

一共有 **5 个问题**：  
| # | 问题 | 影响 |  
| --- | --- | --- |  
| 1 | 实例1 Hermes Gateway 进程已死，只剩空壳 bash wrapper | 实例1 完全不工作 |  
| 2 | 实例2 Hermes Gateway 迭代耗尽(60/60)，功能异常 | 实例2 卡死 |  
| 3 | 实例2 bot.py 没在运行（上次会话 sed 搞乱了代码，重写后没完成重启） | 实例2 Telegram Bot 不工作 |  
| 4 | 两个实例的 auxiliary 任务（压缩/记忆/搜索）全部超时 — `provider: auto` 回退到讯飞 API，讯飞响应慢导致连锁超时 | 上下文压缩失败，会话越来越大直到崩溃 |  
| 5 | 讯飞 API 的 cron 定时任务 401 "apikey not found" 错误（19次） | 定时任务全部失败 |

---

## 修改说明
**实例1（讯飞为主）:**
| 配置 | 作用 |
| --- | --- |
| `fallback_providers` → meai.cloud | 讯飞失败/超时时，自动切换到 meai.cloud 继续回答，不会卡死 |
| `auxiliary.compression` → meai.cloud | 上下文压缩用快的 API（60秒超时），不再等讯飞 300 秒 |
| `api_max_retries` → 1 | 讯飞失败一次就切 fallback，不傻等 3 次重试 |

**实例2（meai.cloud 为主）:**
| 配置 | 作用 |
| --- | --- |
| `fallback_providers` → 讯飞 | meai.cloud 挂了时切到讯飞 |
| `api_max_retries` → 1 | 快速切换 |

---

**总结与建议**  
要继续观察刚才配置的 fallback + 辅助任务走 meai.cloud 后，稳定性是否改善。如果讯飞持续不稳定，考虑将主模型也换成 meai.cloud，保持 128K 但用刚才的早压缩策略，让讯飞始终在其能力范围内工作。
