runtime

module
v0.2.0 Latest Latest
Warning

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

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

README

runtime

Agent 进程运行时 —— oagentkit 模块矩阵 tier 0(基础层)。

go get github.com/oagentkit/runtime
包 职责
breaker 三态熔断器(closed → open → half-open → closed/reopen),带半开探针时限与陈旧探测失效 —— 待退役,见下
pacer 流式增量节流器:LLM token 级分片攒够窗口再发,避免逐条发布洪泛事件通道
progress 泛型事件总线(Bus[T],发布订阅 + 慢消费者丢弃计数)
procx 子进程最小环境构造(ChildEnv)+ 执行封装,mcp/workcopy/sast 等 spawn 外部进程共用
hotplug 运行时插拔与原子热替换:Plugboard 启停视图 + Holder[T] 泛型快照持有点
hookx 外部 hook 拦截协议:在关键拦截点派生子进程,stdin 喂 JSON

与 oekit/concurrency 的分工

并发/流控的主体能力在 github.com/oekit/concurrency(GoSafe/gopool/单飞/重试/令牌桶/ 滑动窗口/自适应熔断/CPU 降载/攒批/时间轮),本仓不再重复造。本仓只承载 oekit 不会做的 agent 场景能力。

⚠️ 包名撞车,务必按语义区分:

  • oekit/concurrency/progress = 长任务阶段进度追踪器(NewTracker/PhaseConfig/PhaseStatus)
  • 本仓 progress = 泛型事件总线(NewBus[T])

两者语义完全相反,不要混用。

breaker 待退役

breaker 与 oekit/concurrency/breaker 高度重叠,但不是同一算法族 —— 后者是 Google SRE 式自适应概率丢弃(k=1.5/minK=1.1/WithForcePass),本仓是三态熔断器。

已在上游提需求补齐三处状态机细节(代绑定 / 探测时限 / 冷却不被延长): https://github.com/oekit/concurrency/issues/17

上游落地后本包删除,breaker 的消费方改依赖 oekit/concurrency/breaker。 在此之前不要删除 —— 消费方仍在 import 它。

硬约束

procx 不能并入 tools 仓:它同时被 tier1 的 mcpkit、promptx 使用, 并入 tier2 会造成 tier1→tier2 分层倒挂。

开发

go test ./... -race
go vet ./...
gofmt -l .

规范见 AGENTS.md。

License

MIT

Directories

Path Synopsis
Package breaker 熔断器(closed → open → half-open → closed/reopen)。
Package breaker 熔断器(closed → open → half-open → closed/reopen)。
Package hookx 外部 hook 拦截协议:在关键拦截点派生子进程,stdin 喂 JSON 事件载荷、stdout 收 JSON 决策,归并多 hook 结果。
Package hookx 外部 hook 拦截协议:在关键拦截点派生子进程,stdin 喂 JSON 事件载荷、stdout 收 JSON 决策,归并多 hook 结果。
Package hotplug 运行时插拔与原子热替换:启停视图(Plugboard)+ 泛型快照持有点(Holder)。
Package hotplug 运行时插拔与原子热替换:启停视图(Plugboard)+ 泛型快照持有点(Holder)。
Package pacer 流式增量节流器:LLM token 级分片若逐条发布会洪泛事件通道与 前端(每秒数次×千字级文本),按「距上次发布 ≥interval 或缓冲 ≥bytes」合并 发布;总量帽内单流 seq 自 1 单调递增;权威快照到达即 Absorb 收口(此后迟到 分片丢弃);收尾残尾用 Flush 落地。
Package pacer 流式增量节流器:LLM token 级分片若逐条发布会洪泛事件通道与 前端(每秒数次×千字级文本),按「距上次发布 ≥interval 或缓冲 ≥bytes」合并 发布;总量帽内单流 seq 自 1 单调递增;权威快照到达即 Absorb 收口(此后迟到 分片丢弃);收尾残尾用 Flush 落地。
Package procx 子进程托管纪律单源:进程组执行(Setpgid 建组 → 超时/取消 TERM 整组 → 宽限 SIGKILL)、限容采集(stdout/单行双上限)、stdout 按行拆分、 子进程环境白名单(绝不继承宿主全量环境)。
Package procx 子进程托管纪律单源:进程组执行(Setpgid 建组 → 超时/取消 TERM 整组 → 宽限 SIGKILL)、限容采集(stdout/单行双上限)、stdout 按行拆分、 子进程环境白名单(绝不继承宿主全量环境)。
Package progress 泛型事件总线。
Package progress 泛型事件总线。

Jump to

Keyboard shortcuts

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