☰
GitAgent继承与组合详解:extends、依赖挂载与子代理委托实现高效复用
2026/9/30 16:47:10 网站建设 项目流程

GitAgent继承与组合详解:extends、依赖挂载与子代理委托实现高效复用

【免费下载链接】opengapA framework-agnostic, git-native standard for defining AI agents项目地址: https://gitcode.com/gh_mirrors/git/opengap

使用 GitAgent 构建 AI 代理时,继承(extends)、依赖挂载(dependencies)与子代理委托(delegation)是三大核心复用机制。GitAgent 是一个 git 原生的 AI 代理框架——代理的身份、规则、记忆、工具全部以版本控制文件形式存放在 git 仓库中。本文面向新手,用最少的配置带你打通这套"代理即仓库"的组合体系,让你快速把多个代理能力拼装成一个可维护、可 Fork 的整体。

为什么需要继承与组合?🤔

单独维护一个代理很简单,但真实团队会很快遇到三个问题:

痛点组合机制的解法
多个代理共享同一套"人格 + 规则"extends 继承:子代理声明父仓库,配置自动深合并
团队要共享一批工具 / 技能模块dependencies 挂载:把公共仓库克隆并挂载进来
主代理要"分派任务"给专职小代理delegation 委托:声明子代理,主代理按需调用

这套机制的源码实现位于 src/loader.ts,完整配置字段说明可参考 Documentation.md。

方法一:用 extends 一行继承父代理

只需在 agent.yaml 中加一行(详见 Documentation.md):

# agent.yaml extends: <父代理的git仓库地址>

运行后,GitAgent 会自动把父仓库浅克隆到.gitagent/deps/缓存目录,然后执行合并(实现见 src/loader.ts 的resolveInheritance函数)。合并规则非常好记:

  • 深合并,子代理优先:嵌套对象逐项合并,同名配置以子代理为准
  • 工具(tools)取并集:父、子两边声明的工具都会加载
  • 规则(RULES.md)做联合:父代理的行为约束会追加到系统提示词末尾,两者同时生效

💡典型用法:团队维护一个base-agent公共人格仓库,每个业务代理 Fork 后只写差异配置——改一处、全局生效,还能用git log追溯每次人格变更。

方法二:dependencies 挂载共享资产

当多个代理需要复用同一批工具定义或技能模块时,用dependencies字段声明依赖(字段结构见 src/loader.ts):

# agent.yaml dependencies: - name: shared-tools # 依赖名称 source: <共享仓库git地址> # 仓库来源 version: main # 分支或 tag mount: tools # 挂载目标

加载器会在每次启动时把依赖仓库克隆到.gitagent/deps/<name>(实现见 src/loader.ts 的resolveDependencies函数),指定版本可锁定到某个 tag,保证团队各代理加载的共享资产一致。

⚠️ 小提示:依赖目录位于.gitagent/下,该目录会自动写入.gitignore,不会污染你代理仓库的版本历史。

方法三:delegation 子代理委托 🚀

除了"继承配置",GitAgent 还支持"运行时分工"——主代理把子任务委托给专职子代理。

声明子代理:在 agents/ 目录放一个文件夹或一个 md

子代理的自动发现逻辑在 src/agents.ts,支持两种形式:

  • 目录形式:agents/<name>/agent.yaml(本项目自带的 agents/assistant/agent.yaml 就是一个现成例子,定义了一个通用作码助手)
  • 文件形式:agents/<name>.md,用 YAML frontmatter 写明name和description

配置委托模式

在 agent.yaml 中声明委托策略(三种模式定义见 src/loader.ts):

# agent.yaml delegation: mode: auto # auto | explicit | router
模式行为
auto主代理自动判断何时分派给子代理
explicit仅在明确指令时才委托
router由指定的路由代理(router字段)决定分派目标

委托是怎么发生的?

加载器会把所有子代理以<available_agents>列表形式注入系统提示词(见 src/agents.ts),主代理随后通过cli工具执行类似下面的命令完成一次真实委托:

gitagent --dir agents/assistant -p "重构认证模块并说明改动"

也就是"一个子代理 = 一次独立的 gitagent 会话",天然隔离、各自拥有独立的记忆与工具集。

三种机制怎么选?✅

机制一句话定位适用场景
extends纵向继承:配置与人格的"子类"团队统一基础人格,业务代理叠加差异
dependencies横向挂载:共享工具/技能仓库跨代理复用同一批工具定义
delegation运行时分工:主子代理协作复杂任务拆给专职小代理并行推进

三者可以叠加使用:用extends继承基础人格 → 用dependencies挂载公共工具 → 用delegation把重活分给子代理,即可搭出结构清晰、易于维护的代理体系。

总结

  • extends让你一行配置继承父代理,子配置优先、工具取并集、规则做联合
  • dependencies让你像声明包依赖一样挂载共享仓库并锁定版本
  • delegation让你把agents/目录下的子代理变成可调度的"专职同事"

GitAgent 的精髓正是"代理即仓库":Fork 一个代理就是继承一种人格,git log就能查看记忆演化。建议从 README.md 的快速开始入手,再对照 Documentation.md 中的完整agent.yaml字段表,动手搭出你的第一个多代理体系 🛠️

【免费下载链接】opengapA framework-agnostic, git-native standard for defining AI agents项目地址: https://gitcode.com/gh_mirrors/git/opengap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询