Include utility modules, shared channels, prompts, read-only skills, wardrobe memory and regression tests. Externalize legacy credentials and exclude private runtime state.
Utility 只读语言 Skills
这里是语言规范 Skill 安装根目录。初始没有安装任何 Skill;目录中的 README 不是 Skill。 本实现是 Agent Skills 的只读文本子集,不执行 scripts、不下载 URL,也不根据 allowed-tools 授予权限。
安装与启用
- 管理员审核内容后创建
skills/<name>/SKILL.md,例如:
---
name: reply-style
description: 用于聊天与通知的语言表达规范。
---
# 表达规范
这里填写语言规则,不改变事实、权限、用户称呼或 JSON 协议。
需要时可读取 references/examples.md。
- 可选示例放在同一技能的
references/*.md或references/*.txt。其他文件、脚本和二进制资源不加载。 - 在
skills_config.yml白名单加入名字,并按需要绑定场景:
enabled: true
allowlist: [reply-style]
always: []
scenes:
private_chat: [reply-style]
group_chat: [reply-style]
help: [reply-style]
notification: [reply-style]
reminder: []
proactive: [reply-style]
tool_result: [reply-style]
limits:
body_bytes: 32768
reference_bytes: 16384
max_skills: 3
max_rounds: 2
max_tokens: 12000
reminder 还继承 notification 的绑定。always 是所有用户可见生成入口的常驻正文;不要把所有 Skill 都塞入 always。
本版本生成循环上限为 3 个 Skill、2 次按需读取往返、12k 估算文本 tokens;配置可以降低限制。
加载规则在下一轮生效,无需重启;正在执行的聊天使用不可变旧快照直到该轮结束。
模型读取
已启用目录只提供 name/description;模型通过只读请求读取正文和参考文件:
{"name":"skill","args":{"action":"load","params":{"name":"reply-style"}}}
{"name":"skill","args":{"action":"read","params":{"name":"reply-style","path":"references/examples.md"}}}
也支持 list,params 为空对象。路径相对技能根目录;必须先加载 Skill 正文再读其参考文件。
在模型完成读取之前,本次响应中的聊天文字和业务工具计划都不会发出或执行。
通知/帮助内部使用文本 JSON 包装,包装只允许 skill 读取,最终仍返回普通字符串。
范围与优先级
- 适用:私聊、群聊、主动对话、帮助、通知、提醒、Agent 工具结果表达。
- 不适用:command 固定输出、API 故障原文降级、内部记忆压缩、贴纸适配审核。
- 当前用户明确要求与个人表达偏好优先于语言 Skill;Skill 不得覆盖事实、权限及结构化输出协议。
- 群聊不加载私聊个人事实。Skill 只从管理员白名单目录获取,用户不能通过聊天修改它。
失败、缓存与观测
路径穿越、符号链接、非法 YAML、二进制文件或超限读取会被拒绝。
配置损坏时保留最后有效快照;enabled: false 明确关闭。空白名单保持旧调用行为,不增加模型请求。
原文不做隐式截断:超过读取预算返回错误,超过总文本预算则交由原调用者安全降级。
时间仍随用户消息发送。目录和内容稳定排序,加载 hash 不包含修改时间;常驻/绑定内容在动态上下文之前,按需引用在后。
日志仅记录 Skill 名称、指纹、场景、估算用量和读取次数;[model-usage] 记录 API 返回的 token/cache 数量,不记录用户正文。
文本 token 数是估算值,图片的服务端计费 token 仍由模型服务决定。
回滚
先将 enabled 置为 false 即可在下一轮回到无 Skill 行为。业务模型、工具权限和原提示词保持不变。
不要通过删除原人设或表达提示词来关闭 Skills;本次实现没有迁移这些旧规则。