Skip to content

Cola Code profile 隔离不完整:模型切换、skill 过滤、soul 加载、context 膨胀 #12

Description

@orange2ai

问题概述

Cola Code(coding profile)存在多处 profile 隔离不完整的问题,导致模型切换失效、context 过度膨胀、人格显示异常。

Bug 列表

🔴 1. 模型切换不生效

  • 现象:Cola Code UI 切换模型后,Pi runner 仍使用旧模型
  • 根因:UI 的模型切换未写回 coding/sessions.jsonmodelSlot
  • 验证:手动修改 sessions.json 的 modelSlot 后 Pi runner 正常切换
  • 额外发现:部分模型 ID(如 lite)在 coding profile 下报 模型未找到

🔴 2. Skill 未按 mod 过滤

  • 现象:coding session 加载全部 50+ 个 skill,包括 Spotify、Google Workspace、Apple Calendar 等与 coding 无关的
  • 根因mods/coding/skills/ 目录存在但为空,实际加载时遍历了所有全局 skill 目录
  • 影响:available_skills 在系统提示中占 ~3,700 tokens(29%),其中 80%+ 对 coding 无用

🔴 3. Coding soul.md 未加载

  • 现象:coding session 显示的是默认叽酱人格,而非 mods/coding/soul.md 的 House 风格
  • 根因:系统提示使用的是默认 AGENT.md,coding mod 的 soul 覆盖未生效

🟡 4. Context 过度膨胀

  • 现象:每轮 85K input tokens,工具调用轮次可达 342K
  • 根因
    • Guidelines 中塞入了 coding 无关的工具指南(build_app Cloudflare Workers API、listenhub 视频参数、cola_link_send 社交功能),占 5,868 tokens(45%)
    • 工具结果(read/bash/grep)在对话中永久保留,占会话增长的 53%
    • gh-cli 等大 skill 文件(40KB)加载后永不卸载
    • work_update 每次返回完整对象而非精简响应

根本原因

所有问题指向同一个根因:profile 隔离在当前实现中不完整。模型、skill、soul、指南应该按 profile 独立配置,但实际是全局共享。

修复方向

  1. 短期:Guidelines 和 Skills 按 profile 过滤注入
  2. 中期:工具结果截断 + work_update 精简 + 技能按需加载后卸载
  3. 长期:完善 profile 级配置隔离(modelSlot 写入链路、soul 加载链路)

参考

详细分析报告:见附件 cola-coding-context-analysis.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions