"Agent运维工具箱——会话质量监控(上下文衰减检测/state.db维护/压缩策略/已知bug)+ 模型提供商特性记录(DeepSeek/MiMo/StepFun/DashScope等配置坑位+验证铁律)。"
Install
npx skillscat add garoter-a11y/g-agent-yunwei Install via the SkillsCat registry.
G-agent-yunwei — Agent运维工具箱
Part A管session健康,Part B管provider配置。互补一体。
Part A:会话质量管理
触发条件
- 会话超过
2小时或500条消息 - 用户报告响应质量下降、记忆丢失
- 用户问token用量、上下文限制
- Hermes启动慢/响应迟钝
- state.db膨胀
- 切换到新模型提供商、配置新API密钥
- 调查"为什么agent行为反常"
DeepSeek V4 上下文退化profile
| 指标 | 数值 |
|---|---|
| 公布窗口 | 1,048,576 tokens (1M) |
| 实际有效 | 150K-250K tokens |
| 退化起效 | ~3小时/~1000条密集消息 |
| 根因 | 长序列attention权重衰减 |
| GUI进度条 | 说谎——显示%是内部buffer,不是注意力质量 |
会话老化检测清单
- 用户说"你忘了X"或"我告诉过你Y"
- 关键词触发规则失效
- 回复变得通用,丢失项目上下文
- 会话>2.5小时运行时间
缓解措施(按严重度递增)
- 预防 —
hermes config set compression.threshold 0.25 - 轻度 — 压缩上下文,丢弃旧tool输出
- 中度 — 新窗口(关闭当前,开新session全量加载memory)
- 重度 — cron job每150分钟提醒。
⚠️ Token成本警告:Cron job是完整Agent会话——每次tick加载系统提示+调用LLM+写入state.db。90分钟间隔≈16次/天,每次~100K tokens≈~1.6M tokens/天仅用于监控。只在运行多小时会话且无法手动跟踪上下文健康时才启用。
state.db 维护
# 快速检查
hermes sessions stats
# 清理旧会话(auto-confirm)
echo y | hermes sessions prune --older-than 7
# VACUUM回收空间
python -c "import sqlite3,os;c=sqlite3.connect(os.path.expandvars(r'%USERPROFILE%\\AppData\\Local\\hermes\\state.db'));c.execute('VACUUM');c.close()"桌面GUI上下文盲区
Hermes桌面GUI无上下文用量指示器——无进度条、无token计数、无/status命令。TokenPulse (StreamDock插件)正在开发填补此空缺。
已知Bug
- Compression fallback bug (#49307):上下文压缩时fallback路径重复写入active_task→agent重复旧答案。已修复(2026-06-21),确保版本>=修复版。
- "net err connection closed":Electron WebView与Python后端WebSocket断开(code=1006)。非API故障。
hermes sessions prune跳过未正常结束的会话:crashed/force-quit的session(ended_at=NULL)不可见。- Background Review崩溃循环:每10轮fork子agent→工具被白名单拒绝→异常→Electron崩溃→daemon重启→再次触发→∞循环。
技能库存优化
# 1. 看哪些技能有实际加载记录
hermes insights --days 30 | grep -A 30 "Top Skills"
# 2. 列出全部技能
hermes skills list
# 3. 交叉比对 — 30天内加载次数=0的分类就是候选删除
# 4. 对于 builtin 技能:重命名 SKILL.md → SKILL.md.disabled(两处都要改:~/hermes-agent/skills/ 和 ~/skills/)
# 对于 hub-installed:hermes skills uninstall注意:hermes skills uninstall 只能卸 hub-installed 技能。builtin 技能需手动重命名。改完后 /reset 生效。
参考
references/deepseek-v4-degradation-profile.md— 2026-06-16会话详细发现references/state-db-diagnosis.md— state.db完整诊断流程references/hermes-backup-restore.md— Hermes备份恢复流程,state.db schema版本兼容诊断
Part B:模型提供商特性
速查表
| Provider | Context Reality | Billing API? | Key Risk |
|---|---|---|---|
| DeepSeek | 1M广告,150-250K有效 | 仅余额(无用量API) | ~3h后静默上下文退化 |
| MiMo | 1M,推理+视觉 | MiMo控制台 | 小max_tokens→空输出;Token Plan用不同base_url;V2系列2026-06-30停用 |
| StepFun | 标准 | 用量面板 | ASR需嵌套JSON,语音名大小写敏感 |
| DashScope | 标准 | 阿里云控制台 | tp-密钥可能不适用标准端点 |
| OpenAI | TBD | TBD | TBD |
| Anthropic | TBD | TBD | TBD |
配置验证铁律 ⚠️
要杀死的循环:配置→声称完成→用户测试→不行→调试→找到缺失→修复→声称完成→还是不行→重复3+轮。
铁律:写入任何新provider/model/credential配置后,立即端到端测试。不通过测试不报告"已配置"。
实践推论:如果api_key_env首次尝试失败,直接hardcode api_key,不重试api_key_env的不同路径。
通用规则
- 公布窗口≠有效窗口。 GUI进度条显示公布限制,非有效限制。
- 长会话cap。 >3h/>1000条消息→早期指令注意力衰减。
- 缓解: cron job每150分钟提醒开新session。
- 计费可视性: 多数厂商不暴露编程用量API。需用户登录web面板。
各厂商详细
- DeepSeek:
references/deepseek.md— 上下文窗口、计费API、定价、退化时间线 - MiMo:
references/mimo.md— 推理模型怪癖、视觉设置、token预算、定价 - StepFun:
references/stepfun.md— ASR/TTS格式、模型目录、语音配置 - DashScope:
references/dashscope.md— 视觉配置、密钥格式、qwen-vl模型 - TCB/CloudBase:
references/tcb-cloudbase.md— CLI工作流、NoSQL备份
陷阱汇总
- 配置变更需
/reset:config.yaml在session启动时读一次,运行中修改不生效 - 桌面GUI隐藏上下文用量:用户无法自查看token消耗
- 缓存≠免费注意力:90%+ token可能是缓存命中(free),但仍占序列位置
- 不要过度解释退化:用户知道它在发生,直接行动——建议reset而非讲课
- PowerShell在git-bash中乱码:用
wmic代替复杂PowerShell,或用Python - 技能列表必须含中文描述:给G先生看的技能列表必须逐条中文注解
- 配置后必须端到端测试:不要报告"已配置"直到测试通过
[^^]: # G-agent-yunwei — session质量管理 + provider特性 | 小茉莉 2026-06-25
[^^]: # 合并自:session-quality-management + provider-quirks