mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-06-06 08:30:42 +08:00
feat: skills i18n 改造(schemaVersion 1.1,零向后兼容) (#1)
* feat: skills i18n 改造 — schemaVersion 1.1,零向后兼容
把 21 个 skills + 1 个 agent + manifest/categories 全量迁移到 schemaVersion 1.1
的 i18n 结构,配套 CI AI 翻译流水线(GitHub Models)与本地工具链。
## 关键变更
### 数据结构(破坏性,schemaVersion 1.0 → 1.1)
- SKILL.md: 顶层 name 改为 ASCII slug(== 目录名,符合 agentskills.io 规范);
中文显示名/short_desc/description 全部迁入 metadata.i18n.<locale>
- agents/<id>/agent.json: shortDesc/fullDesc/tags/persona.{role,traits} 迁入
i18n.<locale>;changelog[].changes 改为 { <locale>: string[] } 对象
- categories.json: 每个分类的 label/description 迁入 i18n.<locale>,顶层只剩
color/icon
- manifest.json: 加 supportedLocales / defaultLocale;顶层 description 迁入
i18n.<locale>
### Body 文件结构
- 根 SKILL.md = frontmatter + default_locale (en-US) body
- SKILL.<locale>.md = 各 locale 的 markdown body(首行 <!-- locale: xx --> 自校验)
### 工具链(scripts/i18n/)
- glossary.json: zh→en 术语表 + do_not_translate 白名单
- schema/skill-frontmatter.schema.json: i18n frontmatter JSON Schema
- validate-i18n.py: 8 条校验规则(name 合规 / locale 完整性 / hash 一致性等)
- translate.py: GitHub Models / Anthropic 双 backend,sha256 增量翻译
- migrate.py: 一次性迁移脚本(旧格式 → i18n 结构)
### CI(.github/workflows/)
- i18n-validate.yml: PR 触发跑 validate + translate --check
- i18n-translate.yml: PR 触发用 GitHub Models(默认 openai/gpt-5-mini)翻译缺失
locale,自动追加 commit;可切到 ANTHROPIC_API_KEY 走 Claude
### 文档
- docs/I18N.md: 作者贡献指南(schema 说明 / 提交流程 / 常见问题)
- README.md: 加多语言段落
## 验证
- uv run scripts/i18n/validate-i18n.py: OK,49 文件 0 错误
- uv run scripts/i18n/translate.py --check: 0 stale locale
- 21 skills 标题数 zh-CN == en-US 严格对齐(最大 66=66)
- skills-ref 规范校验:全部通过(顶层 name ASCII slug + description 单字段)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(i18n): 修复 PR #1 review 反馈的 6 项问题
- schema: translated_by 正则放宽为 ^(human|ai:[A-Za-z0-9._:/-]+)$,接受
'ai:github:openai/gpt-5-mini' 这类 backend:model 形式(CI 翻译输出格式)
- README + docs/I18N.md: 修正"CI 用 Claude API"误导描述,正确说明默认是
GitHub Models(openai/gpt-5-mini)+ GITHUB_TOKEN,可选切到 Anthropic
- skills/minimax-tts/SKILL.md & SKILL.zh-CN.md: 删除多余的 ``` 闭合,避免
Markdown 后续渲染错乱
- skills/docx/SKILL.md: 翻译时丢失的 • Unicode escape 示例已恢复,
与 zh-CN 版本对齐
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
286
skills/update-agent/SKILL.zh-CN.md
Normal file
286
skills/update-agent/SKILL.zh-CN.md
Normal file
@@ -0,0 +1,286 @@
|
||||
<!-- locale: zh-CN -->
|
||||
|
||||
# update-agent 技能
|
||||
|
||||
## L0:一句话摘要
|
||||
|
||||
通过自然语言对话,安全地修改 Agent 的配置、人格、规则和技能。
|
||||
|
||||
## L1:概述与使用场景
|
||||
|
||||
### 能力描述
|
||||
|
||||
update-agent 是一个**元技能(Meta-Skill)**,允许用户通过对话方式修改 Agent 的各项配置。所有修改都会生成可审阅的 diff 补丁,经用户确认后才会应用,并支持版本回滚。
|
||||
|
||||
### 使用场景
|
||||
|
||||
- 用户想要调整 Agent 的沟通风格("说话再正式一点")
|
||||
- 需要添加新的行为规则("以后遇到敏感话题要先提醒我")
|
||||
- 安装或卸载技能包("学会写合同吧")
|
||||
- 批量更新多项配置("全面升级一下你的能力")
|
||||
|
||||
### 核心价值
|
||||
|
||||
- **安全可控**:所有变更需用户确认,支持回滚
|
||||
- **透明可见**:变更以 diff 形式展示,清晰明了
|
||||
- **版本管理**:通过 Git 管理版本,可追溯历史
|
||||
|
||||
## L2:详细规范
|
||||
|
||||
### 支持的更新类型
|
||||
|
||||
| 更新类型 | 目标文件 | 风险等级 | 示例 |
|
||||
| --------------- | --------------- | -------- | -------------------- |
|
||||
| Persona 更新 | `persona.md` | 中 | 修改沟通风格、价值观 |
|
||||
| Principles 更新 | `principles.md` | 高 | 添加/修改行为规则 |
|
||||
| Skills 安装 | `skills/` | 中 | 添加新技能包 |
|
||||
| Skills 卸载 | `skills/` | 低 | 移除技能包 |
|
||||
| Memory 更新 | `memory/` | 低 | 添加知识条目 |
|
||||
| Tools 配置 | `tools/` | 高 | 修改工具权限 |
|
||||
|
||||
### 对话流程
|
||||
|
||||
```
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ 意图识别 │ ──→ │ 变更分析 │ ──→ │ Diff 生成 │
|
||||
└──────────────┘ └──────────────┘ └──────────────┘
|
||||
│
|
||||
↓
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ 回执生成 │ ←── │ 变更应用 │ ←── │ 用户确认 │
|
||||
└──────────────┘ └──────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
### 阶段 1:意图识别
|
||||
|
||||
**触发条件**(任一满足):
|
||||
|
||||
- 用户说"修改你的..."、"更新你的..."、"调整一下..."
|
||||
- 用户说"你以后要..."、"记住这个规则..."
|
||||
- 用户说"安装/卸载这个技能..."
|
||||
- 用户描述对当前行为的不满并期望改变
|
||||
|
||||
**输出**:识别更新类型和目标范围。
|
||||
|
||||
### 阶段 2:变更分析
|
||||
|
||||
**分析维度**:
|
||||
|
||||
| 维度 | 说明 |
|
||||
| -------- | ------------------------ |
|
||||
| 影响范围 | 影响哪些文件、哪些行为 |
|
||||
| 风险等级 | 低/中/高(见风险分级表) |
|
||||
| 依赖检查 | 是否影响其他配置 |
|
||||
| 冲突检测 | 是否与现有规则冲突 |
|
||||
|
||||
**风险分级表**:
|
||||
|
||||
| 风险等级 | 条件 | 确认要求 |
|
||||
| -------- | ------------------------------ | ---------------------- |
|
||||
| 低 | 仅影响非核心配置(如记忆条目) | 简单确认 |
|
||||
| 中 | 影响 persona 或普通 principles | 展示 diff 后确认 |
|
||||
| 高 | 影响核心 principles 或工具权限 | 详细说明 + diff + 确认 |
|
||||
| 受保护 | 触及受保护路径 | 阻断,需 owner 权限 |
|
||||
|
||||
### 阶段 3:Diff 生成
|
||||
|
||||
**Diff 格式示例**:
|
||||
|
||||
```diff
|
||||
# persona.md
|
||||
|
||||
## 沟通风格
|
||||
|
||||
- 友好、随和、轻松幽默
|
||||
+ 专业、严谨、适度幽默
|
||||
|
||||
## 决策偏好
|
||||
|
||||
保持不变...
|
||||
```
|
||||
|
||||
**Diff 元数据**:
|
||||
|
||||
```yaml
|
||||
diff_metadata:
|
||||
files_affected: 1
|
||||
lines_added: 1
|
||||
lines_removed: 1
|
||||
risk_level: medium
|
||||
reversible: true
|
||||
estimated_impact: '沟通风格会变得更正式'
|
||||
```
|
||||
|
||||
### 阶段 4:用户确认
|
||||
|
||||
**确认界面**:
|
||||
|
||||
```
|
||||
变更预览
|
||||
|
||||
影响文件: persona.md
|
||||
风险等级: 中
|
||||
影响说明: 沟通风格会从"友好随和"变为"专业严谨"
|
||||
|
||||
--- 变更内容 ---
|
||||
[展示 diff]
|
||||
----------------
|
||||
|
||||
请确认是否应用此变更?
|
||||
[应用] [取消] [修改]
|
||||
```
|
||||
|
||||
**确认选项**:
|
||||
|
||||
- **应用**:执行变更
|
||||
- **取消**:放弃变更
|
||||
- **修改**:进入编辑模式微调
|
||||
|
||||
### 阶段 5:变更应用
|
||||
|
||||
通过 AgentFS 直接读写文件完成变更。**不要调用 HTTP API,不要直接操作 Git**(版本管理由后端自动处理)。
|
||||
|
||||
**AgentFS 根目录**:`~/.desirecore/agents/<agentId>/`
|
||||
|
||||
**读取文件**:使用 `cat` 命令读取目标文件当前内容。
|
||||
|
||||
**写入文件**:使用文本编辑工具直接写入目标文件。写入后重新读取文件确认内容正确。
|
||||
|
||||
**注意**:直接写入文件后,后端文件监控会自动检测变更并触发 Git 提交,无需手动执行 git 命令。
|
||||
|
||||
### 阶段 6:回执生成
|
||||
|
||||
创建成功后,以用户友好的方式呈现回执(不要暴露内部路径或技术细节):
|
||||
|
||||
> 已更新「法律顾问小助手」的沟通风格。
|
||||
>
|
||||
> **变更摘要**:沟通风格从"友好随和"调整为"专业严谨"
|
||||
>
|
||||
> 如果不满意,可以随时说"撤销刚才的修改"来回滚。
|
||||
|
||||
### 特殊操作:版本回滚
|
||||
|
||||
**触发条件**:用户说"撤销刚才的修改"、"回滚到之前的版本"、"恢复原来的设置"
|
||||
|
||||
**回滚流程**:
|
||||
|
||||
1. 在 Agent 目录下执行 `git log --oneline -10` 查看最近的版本历史
|
||||
2. 使用 `git show <commit>:<file>` 获取目标版本的文件内容,展示给用户确认
|
||||
3. 用户确认后,将目标版本内容写入对应文件
|
||||
4. 展示变更 diff,确认回滚成功
|
||||
|
||||
```bash
|
||||
# 查看版本历史
|
||||
cd ~/.desirecore/agents/<agentId>
|
||||
git log --oneline -10
|
||||
|
||||
# 查看某个版本的文件内容
|
||||
git show <commit>:persona.md
|
||||
```
|
||||
|
||||
### 背景知识
|
||||
|
||||
> AgentFS 仓库结构与受保护路径详见 `_agentfs-background.md` 和 `_protected-paths.yaml`。
|
||||
|
||||
**更新操作对照表**:
|
||||
|
||||
| 用户意图 | 目标文件 | AgentFS 路径 |
|
||||
| -------------- | --------------- | ---------------------------------------------- |
|
||||
| 修改性格/风格 | `persona.md` | `~/.desirecore/agents/<agentId>/persona.md` |
|
||||
| 修改行为规则 | `principles.md` | `~/.desirecore/agents/<agentId>/principles.md` |
|
||||
| 安装/卸载技能 | `skills/` | `~/.desirecore/agents/<agentId>/skills/` |
|
||||
| 修改工具配置 | `tools/` | `~/.desirecore/agents/<agentId>/tools/` |
|
||||
| 添加记忆 | `memory/` | `~/.desirecore/agents/<agentId>/memory/` |
|
||||
| 修改运行时配置 | `agent.json` | `~/.desirecore/agents/<agentId>/agent.json` |
|
||||
|
||||
### 错误处理
|
||||
|
||||
| 错误场景 | 处理方式 |
|
||||
| ------------------ | -------------------------------------- |
|
||||
| 尝试修改受保护路径 | 阻断操作,提示需要 owner 权限 |
|
||||
| 文件不存在 | Agent 或目标文件不存在,提示用户检查 |
|
||||
| 权限不足 | 文件系统权限错误,提示用户检查目录权限 |
|
||||
| 回滚版本不存在 | 列出可用版本,请用户重新选择 |
|
||||
|
||||
### 权限要求
|
||||
|
||||
| 操作 | 所需角色 |
|
||||
| --------------------------- | ------------- |
|
||||
| 更新 persona | owner, member |
|
||||
| 更新 principles(普通规则) | owner, member |
|
||||
| 更新 principles(安全红线) | owner |
|
||||
| 安装/卸载 skills | owner, member |
|
||||
| 修改 tools 权限 | owner |
|
||||
| 版本回滚 | owner |
|
||||
|
||||
---
|
||||
|
||||
## 附录:更新示例
|
||||
|
||||
### Persona 修改示例
|
||||
|
||||
**用户输入**:"说话再正式一点,不要太随意"
|
||||
|
||||
**操作流程**:
|
||||
|
||||
```bash
|
||||
# 1. 读取当前 persona.md
|
||||
cat ~/.desirecore/agents/legal-assistant/persona.md
|
||||
|
||||
# 输出示例:
|
||||
# # 法律顾问小助手
|
||||
# ## L0
|
||||
# 专业的法律咨询助手
|
||||
# ## L1
|
||||
# ### Role
|
||||
# 法律顾问
|
||||
# ### Personality
|
||||
# 友好、随和
|
||||
# ### Communication Style
|
||||
# 轻松幽默
|
||||
|
||||
# 2. 分析需要修改的部分,生成 diff 展示给用户确认
|
||||
|
||||
# 3. 用户确认后,直接编辑文件,将 Personality 和 Communication Style 修改为目标值
|
||||
|
||||
# 4. 验证写入结果
|
||||
cat ~/.desirecore/agents/legal-assistant/persona.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Principles 更新示例
|
||||
|
||||
### 添加新规则
|
||||
|
||||
**用户输入**:"以后遇到法律问题,先提醒我找专业律师"
|
||||
|
||||
**生成的 Diff**:
|
||||
|
||||
```diff
|
||||
# principles.md
|
||||
|
||||
## 必须做
|
||||
|
||||
- 始终保持礼貌和尊重
|
||||
- 不确定时主动询问
|
||||
+ - 遇到法律相关问题时,提醒用户咨询专业律师
|
||||
|
||||
## 绝不做
|
||||
...
|
||||
```
|
||||
|
||||
### 修改现有规则
|
||||
|
||||
**用户输入**:"不要每次都提醒我,太啰嗦了"
|
||||
|
||||
**生成的 Diff**:
|
||||
|
||||
```diff
|
||||
# principles.md
|
||||
|
||||
## 必须做
|
||||
|
||||
- - 每次回答后都提醒用户检查内容
|
||||
+ - 仅在重要决策时提醒用户检查内容
|
||||
```
|
||||
Reference in New Issue
Block a user