Files
market/skills/update-agent/SKILL.zh-CN.md
xyx 4f7037a6b6 fix: replace hardcoded ~/.desirecore paths with ${DESIRECORE_ROOT} variable (#16)
## Summary

- 将所有技能文件中的硬编码 `~/.desirecore/` 和 `$HOME/.desirecore/` 路径替换为
`${DESIRECORE_ROOT}/` 变量
- 递增 manifest.json version 至 1.2.1

## Why

dev 模式下 `DESIRECORE_HOME=~/.desirecore-dev`,硬编码路径导致技能读取错误的端口文件和目录。主仓库的
`variable-substitutor.ts` 会在运行时将 `${DESIRECORE_ROOT}` 替换为实际根目录。

## Test plan

- [ ] `npm run dev` 启动后触发任意技能,确认端口路径解析为
`~/.desirecore-dev/agent-service.port`
- [ ] prod 模式确认路径为 `~/.desirecore/agent-service.port`

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-29 15:36:19 +08:00

9.0 KiB
Raw Blame History

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 权限

阶段 3Diff 生成

Diff 格式示例

# persona.md

## 沟通风格

- 友好、随和、轻松幽默
+ 专业、严谨、适度幽默

## 决策偏好

  保持不变...

Diff 元数据

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_ROOT}/agents/<agentId>/

读取文件:使用 cat 命令读取目标文件当前内容。

写入文件:使用文本编辑工具直接写入目标文件。写入后重新读取文件确认内容正确。

注意:直接写入文件后,后端文件监控会自动检测变更并触发 Git 提交,无需手动执行 git 命令。

阶段 6回执生成

创建成功后,以用户友好的方式呈现回执(不要暴露内部路径或技术细节):

已更新「法律顾问小助手」的沟通风格。

变更摘要:沟通风格从"友好随和"调整为"专业严谨"

如果不满意,可以随时说"撤销刚才的修改"来回滚。

特殊操作:版本回滚

触发条件:用户说"撤销刚才的修改"、"回滚到之前的版本"、"恢复原来的设置"

回滚流程

  1. 在 Agent 目录下执行 git log --oneline -10 查看最近的版本历史
  2. 使用 git show <commit>:<file> 获取目标版本的文件内容,展示给用户确认
  3. 用户确认后,将目标版本内容写入对应文件
  4. 展示变更 diff确认回滚成功
# 查看版本历史
cd ${DESIRECORE_ROOT}/agents/<agentId>
git log --oneline -10

# 查看某个版本的文件内容
git show <commit>:persona.md

背景知识

AgentFS 仓库结构与受保护路径详见 _agentfs-background.md_protected-paths.yaml

更新操作对照表

用户意图 目标文件 AgentFS 路径
修改性格/风格 persona.md ${DESIRECORE_ROOT}/agents/<agentId>/persona.md
修改行为规则 principles.md ${DESIRECORE_ROOT}/agents/<agentId>/principles.md
安装/卸载技能 skills/ ${DESIRECORE_ROOT}/agents/<agentId>/skills/
修改工具配置 tools/ ${DESIRECORE_ROOT}/agents/<agentId>/tools/
添加记忆 memory/ ${DESIRECORE_ROOT}/agents/<agentId>/memory/
修改运行时配置 agent.json ${DESIRECORE_ROOT}/agents/<agentId>/agent.json

错误处理

错误场景 处理方式
尝试修改受保护路径 阻断操作,提示需要 owner 权限
文件不存在 Agent 或目标文件不存在,提示用户检查
权限不足 文件系统权限错误,提示用户检查目录权限
回滚版本不存在 列出可用版本,请用户重新选择

权限要求

操作 所需角色
更新 persona owner, member
更新 principles普通规则 owner, member
更新 principles安全红线 owner
安装/卸载 skills owner, member
修改 tools 权限 owner
版本回滚 owner

附录:更新示例

Persona 修改示例

用户输入"说话再正式一点,不要太随意"

操作流程

# 1. 读取当前 persona.md
cat ${DESIRECORE_ROOT}/agents/legal-assistant/persona.md

# 输出示例:
# # 法律顾问小助手
# ## L0
# 专业的法律咨询助手
# ## L1
# ### Role
# 法律顾问
# ### Personality
# 友好、随和
# ### Communication Style
# 轻松幽默

# 2. 分析需要修改的部分,生成 diff 展示给用户确认

# 3. 用户确认后,直接编辑文件,将 Personality 和 Communication Style 修改为目标值

# 4. 验证写入结果
cat ${DESIRECORE_ROOT}/agents/legal-assistant/persona.md

Principles 更新示例

添加新规则

用户输入"以后遇到法律问题,先提醒我找专业律师"

生成的 Diff

# principles.md

## 必须做

  - 始终保持礼貌和尊重
  - 不确定时主动询问
+ - 遇到法律相关问题时,提醒用户咨询专业律师

## 绝不做
  ...

修改现有规则

用户输入"不要每次都提醒我,太啰嗦了"

生成的 Diff

# principles.md

## 必须做

- - 每次回答后都提醒用户检查内容
+ - 仅在重要决策时提醒用户检查内容