agentkit

module
v1.8.58 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