agentscope-extensions-skill-git-repository 把一个远程 Git 仓库当作技能仓库:每次读取时做轻量的 remote ref 检查,只在远端 HEAD 变化时才真正 pull,平时几乎零开销。
何时使用
- 想用 Git 来管控技能内容的版本与审阅。
- 想跨多个项目共享同一份技能集。
- 不希望在生产服务里嵌入数据库或配置中心。
添加依赖
快速上手
选定分支 / 自定义本地路径
私有仓库的鉴权
GitSkillRepository 复用系统级 Git 配置,不在 Java 侧管理凭证:
- HTTPS:使用
~/.gitconfig里的 credential helper(osxkeychain、libsecret 等)。 - SSH:使用
~/.ssh/下的密钥与 ssh-agent。
自动同步与手动同步
autoSync=true(默认):getSkill / getAllSkills / skillExists等读操作前会先ls-remote,如远端有更新才执行 pull。autoSync=false:完全不自动 pull,要刷新时调用repo.sync()。
工程实践建议
- 建议在 Spring Bean 上以单例形式持有仓库,重启时统一
close()。 - 临时目录会注册 JVM Shutdown Hook 自动删除;如果你强制 kill 进程,可能残留,需要外部清理。
- 多实例部署时各自维护一份本地 clone,没有锁竞争。