问题
agentdock_context 返回的 Skill description 被硬截到 160,可能在模型选择 Skill 之前丢失触发条件、排除条件或与相邻 Skill 的边界。
这是一个非紧急的改进建议:完整 SKILL.md 仍然可以正常读取,问题主要在初始目录的路由信息不完整。
环境与观察
- AgentDock v0.8.3(commit
bd92f80eb47a)
- macOS / arm64
- 使用 ChatGPT Web 连接 AgentDock;同时直接调用本机 MCP 的
agentdock_context 核验
直接调用本机 MCP 也能复现 description 在 160 处截断,因此不是 ChatGPT 页面显示导致的截断。已核对的长描述条目在原始 Skill 中保持完整,但目录仅返回前缀。
代码位置
v0.8.3 / internal/app/agentdock_context.go 的 skillCapabilityIndex():
Description: truncateString(strings.TrimSpace(skill.Description), 160),
本次检查时 main 中仍有同样的逻辑。
复现方式
- 安装并激活一个 description 超过 160 的 Skill,且将一个有意义的触发条件或排除条件放在后半段。
- 调用
agentdock_context。
- 比较
skills 中该条目的 description 与 read_file 读取 skill://<name>/SKILL.md 得到的完整 frontmatter。
实际:目录描述被截断,条目没有标记 description 不完整。
这也不只影响用户自定义 Skill。本次检查官方 agentdock-skills/catalog.json 时,27 个 Skill 中有 9 个 description 超过 160 字符,例如 code-debrief(348)、wallos(316)、linkwarden(251)。这里的长度统计是完整文本字符数。
影响
当前运行规则要求模型先根据索引的 name 和 description 选择 Skill,然后读取完整正文。如果关键的 “Use when…” 或 “Do not use…” 条件位于被截掉的部分,模型在选择阶段就看不到它。选中之后读取全文,不能完全弥补选择阶段的信息缺失。
这说明存在路由信息丢失;并不是声称每次调用都会选错 Skill。
建议
优先考虑在 Skill 索引中保留完整 description,仍然只按需读取完整 SKILL.md 正文,以保留渐进式加载的结构。
如果需要控制目录大小,也可以考虑:
- 提供可配置的 description 长度上限,允许提高或关闭截断;
- 截断时明确标记 description 不完整,并提供读取完整描述的方式。
相关的 #60 为 common_skills 引入了更短的描述限制;本 issue 主要讨论已安装 AgentDock Skills 的 160 截断,通用目录是否同步调整可以另行决定。
问题
agentdock_context返回的 Skilldescription被硬截到 160,可能在模型选择 Skill 之前丢失触发条件、排除条件或与相邻 Skill 的边界。这是一个非紧急的改进建议:完整
SKILL.md仍然可以正常读取,问题主要在初始目录的路由信息不完整。环境与观察
bd92f80eb47a)agentdock_context核验直接调用本机 MCP 也能复现 description 在 160 处截断,因此不是 ChatGPT 页面显示导致的截断。已核对的长描述条目在原始 Skill 中保持完整,但目录仅返回前缀。
代码位置
v0.8.3 / internal/app/agentdock_context.go 的
skillCapabilityIndex():本次检查时
main中仍有同样的逻辑。复现方式
agentdock_context。skills中该条目的description与read_file读取skill://<name>/SKILL.md得到的完整 frontmatter。实际:目录描述被截断,条目没有标记 description 不完整。
这也不只影响用户自定义 Skill。本次检查官方 agentdock-skills/catalog.json 时,27 个 Skill 中有 9 个 description 超过 160 字符,例如
code-debrief(348)、wallos(316)、linkwarden(251)。这里的长度统计是完整文本字符数。影响
当前运行规则要求模型先根据索引的 name 和 description 选择 Skill,然后读取完整正文。如果关键的 “Use when…” 或 “Do not use…” 条件位于被截掉的部分,模型在选择阶段就看不到它。选中之后读取全文,不能完全弥补选择阶段的信息缺失。
这说明存在路由信息丢失;并不是声称每次调用都会选错 Skill。
建议
优先考虑在 Skill 索引中保留完整 description,仍然只按需读取完整 SKILL.md 正文,以保留渐进式加载的结构。
如果需要控制目录大小,也可以考虑:
相关的 #60 为
common_skills引入了更短的描述限制;本 issue 主要讨论已安装 AgentDock Skills 的 160 截断,通用目录是否同步调整可以另行决定。