catalog/repos/aig787--agpm.md

252 lines
7.7 KiB
Markdown
Raw Permalink Normal View History

2026-04-07 11:44:56 +08:00
# AI编码助手包管理器
`包管理器` `AI助手` `Claude Code` `Git` `Rust` `依赖管理`
# AGPM - AI智能体包管理器
> ⚠️ **测试版软件**:本项目正在积极开发中,在生产环境中使用请谨慎。
一个面向 AI 编码助手Claude Code、OpenCode 等)的 Git 包管理器,通过基于锁文件的依赖管理实现可复现的安装,类似于 Cargo。
## 功能特性
- 📦 **基于锁文件的依赖管理** - 像 Cargo 一样实现可复现安装
- 🌐 **基于 Git 的分发** - 从任意 Git 仓库安装
- 🚀 **无中心注册表** - 完全去中心化方案
- 🤖 **多工具支持** - Claude Code、OpenCodealpha及自定义工具
- 🔧 **七种资源类型** - 智能体、代码片段、命令、脚本、钩子、MCP 服务器、技能alpha
- 🎯 **模式匹配依赖** - 使用 glob 模式批量安装
- 🖥️ **跨平台** - 支持 Windows、macOS 和 Linux
- 🔄 **传递依赖** - 自动依赖解析
- 📝 **Markdown 模板** - 支持依赖嵌入和项目文件过滤的动态内容生成(可选)
- 📊 **Token 计数** - 基于 BPE 的近似 Token 数统计,用于资源追踪
## 快速开始
### 安装
```bash
# macOS/Linux 通过 Homebrew
brew install aig787/homebrew-agpm/agpm-cli
# 所有平台通过 Cargo
cargo install agpm-cli
# 预构建二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aig787/agpm/releases/latest/download/agpm-installer.sh | sh
```
更多选项和平台特定说明请参阅[安装指南](docs/installation.md)。
### 基本用法
```bash
# 初始化新项目
agpm init
# 安装依赖
agpm install
# 检查更新
agpm outdated
# 更新依赖
agpm update
# 列出已安装的资源
agpm list
```
### 示例配置文件
```toml
# agpm.toml
[sources]
community = "https://github.com/aig787/agpm-community.git"
[agents]
# Claude Code 智能体(默认)
rust-expert = { source = "community", path = "agents/rust-expert.md", version = "v1.0.0" }
# OpenCode 智能体alpha
assistant-oc = { source = "community", path = "agents/assistant.md", version = "v1.0.0", tool = "opencode" }
[snippets]
# 共享代码片段(默认:.agpm/snippets/
react-hooks = { source = "community", path = "snippets/react-hooks.md", version = "~1.2.0" }
[commands]
deploy = { source = "community", path = "commands/deploy.md", version = "v2.0.0" }
[skills]
# 基于目录的专业技能包alpha
rust-helper = { source = "community", path = "skills/rust-helper", version = "v1.0.0" }
```
更多完整示例请参阅 [docs/examples/](docs/examples/)。
## 核心命令
| 命令 | 描述 |
|-----------------|---------------------------------------------------|
| `agpm init` | 初始化新项目 |
| `agpm install` | 从 agpm.toml 安装依赖 |
| `agpm update` | 在版本约束范围内更新依赖 |
| `agpm outdated` | 检查可用更新 |
| `agpm upgrade` | 将 AGPM 自身升级到最新版本 |
| `agpm migrate` | 从旧版 AGPM 迁移到最新格式 |
| `agpm list` | 列出已安装的资源 |
| `agpm tree` | 显示带 Token 数量的依赖树 |
| `agpm validate` | 验证配置文件和依赖 |
| `agpm add` | 添加源或依赖 |
| `agpm remove` | 移除源或依赖 |
| `agpm config` | 管理全局配置 |
| `agpm cache` | 管理 Git 缓存 |
运行 `agpm --help` 查看完整命令参考,或查阅[命令参考文档](docs/command-reference.md)。
## 进度显示
AGPM 通过简洁专业的界面提供安装进度的实时可见性:
### 安装阶段
```
⠁ 同步源
✓ 源同步完成 (0.8s)
⠂ 解析依赖
✓ 已解析 500 个依赖 (1.2s)
⠄ 安装资源 (127/500 完成)
→ agents/helper-122
→ agents/helper-123
→ agents/helper-124
→ snippets/example-45
→ commands/lint-67
→ agents/helper-125
→ agents/helper-126
✓ 已安装 500 个资源 (12.3s)
✓ 300 个智能体
✓ 150 个代码片段
✓ 50 个命令
✓ 完成安装 (0.2s)
已安装 500 个资源
已配置 2 个 MCP 服务器
```
### 功能特点
- **活动窗口**显示当前正在处理的资源5-10 行)
- **实时更新**:资源的出现和完成实时展示
- **耗时信息**:每个阶段显示持续时间,便于性能分析
- **输出有界**:无论依赖数量多少,终端始终保持整洁
- **资源摘要**:按资源类型(智能体、代码片段等)显示最终汇总
- **专业展示**:简洁输出,无表情符号前缀
## 资源类型
AGPM 管理七种类型的资源,安装到 `agpm/` 子目录,便于 gitignore 管理:
- **智能体** - AI 助手配置(`.claude/agents/agpm/``.opencode/agent/agpm/`
- **代码片段** - 可复用代码模板(`.agpm/snippets/`
- **命令** - 斜杠命令(`.claude/commands/agpm/``.opencode/command/agpm/`
- **脚本** - 可执行自动化文件(`.claude/scripts/agpm/`
- **钩子** - 基于事件的自动化(→ `.claude/settings.local.json`
- **MCP 服务器** - 模型上下文协议服务器(→ `.mcp.json``opencode.json`
- **技能** - 基于目录的专业技能包(`.claude/skills/`)🚧 **Alpha**
详细信息请参阅[资源指南](docs/resources.md)。
## 模板功能
AGPM 为 Markdown 资源的动态内容生成提供了强大的模板功能:
### 依赖内容嵌入
嵌入来自 AGPM 依赖的版本化内容:
```markdown
---
agpm.templating: true
dependencies:
snippets:
- path: snippets/rust-patterns.md
name: rust_patterns
---
# Rust 代码审查员
## 共享模式
{{ agpm.deps.snippets.rust_patterns.content }}
```
### 项目文件过滤
读取并嵌入项目特定文件(团队文档、公司规范):
```markdown
---
agpm.templating: true
---
# 团队智能体
## 公司风格指南
{{ 'project/styleguide.md' | content }}
## 团队规范
{{ 'docs/conventions.txt' | content }}
```
**核心特性**
- 🔒 **安全**:路径验证防止路径遍历攻击
- 📁 **仅限文本文件**`.md``.txt``.json``.toml``.yaml`
- 🔄 **递归**:项目文件可引用其他项目文件(最深 10 层)
- 🎯 **组合使用**:支持同时使用依赖内容和项目文件
完整文档和示例请参阅[模板指南](docs/templating.md)。
## 文档
| 指南 | 描述 |
|-------|-------------|
| [安装指南](docs/installation.md) | 所有安装方式和系统要求 |
| [用户指南](docs/user-guide.md) | 入门指引和基本工作流 |
| [命令参考](docs/command-reference.md) | 完整命令语法和选项 |
| [多工具支持](docs/multi-tool-support.md) | 管理多个 AI 助手的资源 |
| [依赖指南](docs/dependencies.md) | 版本约束、冲突和传递依赖 |
| [资源指南](docs/resources.md) | 使用不同资源类型 |
| [配置指南](docs/configuration.md) | 全局配置、认证和补丁 |
| [配置文件参考](docs/manifest-reference.md) | 完整 agpm.toml 结构说明 |
| [版本控制指南](docs/versioning.md) | 版本约束和 Git 引用 |
| [模板指南](docs/templating.md) | 使用 Tera 进行动态内容生成 |
| [架构文档](docs/architecture.md) | 技术细节和设计决策 |
| [示例](docs/examples/) | 示例配置和使用场景 |
| [常见问题](docs/faq.md) | 常见问题解答 |
| [技能指南](docs/skills-guide.md) | 基于目录的专业技能包 |
| [故障排查](docs/troubleshooting.md) | 常见问题及解决方案 |
## 系统要求
- **Rust 1.85.0+**(从源码构建时需要)
- **Git 2.0+**(用于仓库操作)
## 贡献
欢迎贡献代码!详情请参阅[贡献指南](CONTRIBUTING.md)。
## 支持
- 🐛 [问题追踪](https://github.com/aig787/agpm/issues)
- 💬 [讨论区](https://github.com/aig787/agpm/discussions)
- 📖 [文档](docs/user-guide.md)
## 许可证
MIT 许可证 - 详情请参阅 [LICENSE.md](LICENSE.md)。
---
使用 Rust 🦀 构建,追求可靠性与性能