Help us shape the future of Go! Take the 2026 Go Developer Survey

agentkit

module
v1.8.59 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: MIT

README

agentkit(门面仓 · 已废弃)

🗄️ 本仓已废弃:只保留兼容转发,不是开发目标,新代码不要引它。 原单仓已拆分为 github.com/oagentkit/* 下 13 个独立发版的仓。 本仓只把 48 个活包的导出符号做成别名转发,让存量下游只需改 import 前缀、无需改调用点。 另有 1 个包(breaker)已退役,不在此列——见 MIGRATION.md。 所以 MIGRATION.md 的映射表 = 48 个活包的迁移映射 + 1 行已退役包。

状态:v1.x 退役条件已满足(当前 v1.8.57)。本仓不接受任何新功能, 只做别名转发与安全修复。归档(archive)待旧单仓 git.enjoye.top/enjoydream/agentkit(module path 的实际所在)下线后执行—— 那才是真正切断旧路径的一步;在此之前本仓继续可用,已有 tag 的 go get 照常解析。

新代码请直接 import 上游模块(见下方「迁移」与 MIGRATION.md)。

为什么还有这个仓

原 module path 是 git.enjoye.top/enjoydream/agentkit。拆分意味着所有下游的 go.mod 都得改。直接 archive 会让下游在 go get 时拿到 404,破坏面比留一个门面大得多 —— 留门面至少给一个平滑过渡期。

代价是本仓会成为垃圾场:每个人都往里加东西,一年后又变回单体。所以设死退役时间表, 并且本仓不接受任何新功能,只做别名转发。

过渡期已经走完:矩阵内零消费方(org 内 0、姊妹 org oekit 内 0、 GitHub 全站代码搜索命中 0),门面符号级门禁与「谁还在引门面」门禁都在守。 剩下的唯一阻塞是 GitCode 侧旧单仓尚未归档。

迁移

# 迁移前
import "git.enjoye.top/enjoydream/agentkit/textutil"

# 迁移后(48 个包的完整映射见 MIGRATION.md)
import "github.com/oagentkit/textx/textutil"

包名全部保留,只加了模块前缀,所以调用点一行都不用改。

一次性改写:

# 建议按 MIGRATION.md 的映射表逐包替换,逐条核对而不是一条通配。
# 通配 sed 的坑:新路径的模块段不是旧包名(worker/pglease -> queue/pglease、
# knowledge/rag -> rag),正则很难覆盖;且改写会打乱 import 组内字母序,
# 必须让 gofmt 重排,否则挂 CI 门禁。
#
# 用 matrix-tools 的脚本(只改 import 块内的引号字符串,改完自动 gofmt):
#
#   三个文件必须放在同一目录:rewrite_imports.py 依赖同目录的 matrix_paths.py,
#   矩阵定义 modules.json 用 --modules 显式指定。
#   ⚠️ 不能用 `python3 -c "exec(urlopen(...).read())"` 的写法:exec 的代码里
#   没有 __file__,脚本定位同目录依赖与 spawn 子进程都会炸(NameError)。
#   脚本必须作为文件运行。
curl -sSfL https://raw.githubusercontent.com/oagentkit/matrix-tools/main/scripts/rewrite_imports.py -o rewrite_imports.py
curl -sSfL https://raw.githubusercontent.com/oagentkit/matrix-tools/main/scripts/matrix_paths.py -o matrix_paths.py
curl -sSfL https://raw.githubusercontent.com/oagentkit/matrix-tools/main/modules.json -o modules.json

# 看映射表(不动文件)
python3 rewrite_imports.py --org oagentkit --modules ./modules.json --print-rules

# 真改写(--root 指向你的工程根;只改 import 块内的引号字符串,改完自动 gofmt)
python3 rewrite_imports.py --org oagentkit --modules ./modules.json --root . --apply

改写后按脚本提示收尾:go mod tidy && go build ./... && gofmt -l .。

推荐做法:按 MIGRATION.md 的映射表直接换到最终路径,不要先引门面 —— 门面只是过渡手段。

门面覆盖不到的东西

3 个泛型函数无法用变量别名转发(Go 的泛型函数不能赋值给变量), 需要直接引用上游:

符号 上游路径
hotplug.NewHolder github.com/oagentkit/runtime/hotplug
progress.NewBus github.com/oagentkit/runtime/progress
reportutil.Aggregate github.com/oagentkit/textx/reportutil

未导出符号(内部实现)不在门面范围内,这是 Go 包机制的固有边界。

转发保真度

门面对每个包做 kind 一致 的转发:上游的 type 用 type 块、const 用 const 块、 func/var 用 var 块。所以:

  • 上游的 const 在门面这边仍是 const——可以用于常量位置(const 声明、数组长度、 const 块、iota 组),语义与直接 import 上游完全一致。(不是「降级成 var」: 那样会丢掉常量位置,编译不过。)
  • 上游新增导出符号时,必须在本仓对应包的 alias.go 里补上对应别名,否则下游按门面 import 会编译失败。矩阵侧有符号级门禁 (matrix-tools/scripts/verify_facade_symbols.py)守着这条不变量。

模块矩阵

13 个仓,按 tier 严格自底向上:

tier 模块
0 guardx runtime textx
1 promptx
2 llm mcpkit obs queue rag skillkit toolgate tools
3 agent

上表逐仓对齐 matrix-tools/modules.json(矩阵单一数据源), 门禁 matrix-tools/scripts/verify_facade_tier_table.py 在 CI 里逐 tier 逐仓比对——改分层请先改数据源。

License

MIT

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL