goagent-kernel
介绍
设计初衷
怎么用
能力
坑速查
  • 本站 llms.txt
  • oekit llms.txt
  • oagentkit llms.txt
  • 包清单与机器事实
  • 门禁体系
  • 决策记录(ADR)
  • 版本记录
GitHub
介绍
设计初衷
怎么用
能力
坑速查
  • 本站 llms.txt
  • oekit llms.txt
  • oagentkit llms.txt
  • 包清单与机器事实
  • 门禁体系
  • 决策记录(ADR)
  • 版本记录
GitHub
  • 指南

    • 介绍
    • 设计初衷
    • 怎么用
    • 能力详解

介绍:这是什么

🤖 本页要点已收录进 llms.txt——AI 代理可直接读取。

goagent-kernel 是多智能体编排的通用内核。 一句话定位:编排是代码,LLM 只做单环节—— 它只提供确定性编排的机制面,不认识任何领域概念。

所谓机制面,是这些与「给谁干活」无关的东西:

  • 报告协议(protocol):模型输出怎么变成可信的结构化报告;
  • 工具判定环(tooldisclose / guardset / toolfail / policy / dispatch): 一次工具调用从披露、守卫、审计到派发拓扑的完整判定链;
  • 编排契约与续跑(contract / statemachine / checkpoint / commitgate): 环节状态怎么流转、崩了怎么接着跑、终态怎么独占;
  • 上下文预算(budget / spill / offload):有限的上下文窗口怎么不被撑爆;
  • 执行沙箱(ptc / sandbox):模型写程序、沙箱执行、原始数据不过模型面。

机制 vs 资产:什么不属于本仓

✓ 有(机制,与领域无关)✗ 没有(资产,属于宿主)报告协议:容错解析 · 白名单校验 · 渲染编排运行契约(宿主状态的唯一边界)环节状态机 · 续跑契约 · 终态独占闸工具披露 · 守卫合成 · 失败分类 · 派发守卫上下文计量 · 溢出 · 大对象外置出站 SSRF 守卫 · 个人信息脱敏程序化编排沙箱 · 命令级判据副作用至多一次 · 重试处置决策专家包 · 专家清单 · 技能诊断链 · 编排图(拓扑内容)运维词表 · 目标类型 · 领域字段语义审批风险分级与处置动作摘要生成的具体实现(走 Summarizer 接口)IM 通道 · 通知模板 · 品牌文案工具实现(MCP server)· 工具描述文案幂等键的存储实现(Redis / PG / etcd)判定口诀:「这个包需要知道自己在给谁干活吗?」需要 → 属于宿主。

左列全部「与领域无关」,右列全部「换宿主就变」——这条线由门禁守,不由 review 守。

判定口诀:「这个包需要知道自己在给谁干活吗?」需要 → 属于宿主。

再直白一点:换个宿主,这段代码要不要改?要改的就不该在内核里。

你会拿到什么

你要解决的事用哪个包你要提供什么
会话/环节状态存哪、怎么流转contract + statemachineRunContext / StepSink 两个接口的实现
模型输出怎么变成可信结构protocolagent 名注册(可选)、报告标题(可选)
工具怎么被限制tooldisclose + guardset + policy工具目录、宿主守卫、拓扑 EdgeSource
崩了怎么接着跑checkpoint + commitgateStoreCAS 实现、终态词表注入
上下文怎么不被撑爆budget + spill + offloadSummarizer / Archive / Store 三个接口
进度怎么推给前端eventbus + watchdog落库 + 广播、告警发布出口
出站请求怎么防 SSRFnetguard挂在自己的 DialContext 上
个人信息怎么脱敏pii阻断决策(内核只回报信号)
多工具聚合怎么省往返ptc工具绑定、判定环切片
副作用怎么保证只做一次sideeffect + retryplanStore 实现(跨进程原子)、幂等键

内核的接口设计原则是:内核只判定,不处置——它告诉你「该阻断」「该重试」「不可归类」, 动作由宿主执行。所以每个能力包要你提供的都是你的基础设施(存储、通道、拓扑), 而不是业务逻辑。

在依赖链上的位置

oekit基础库oagentkitagent 原语goagent-kernel编排内核 · 本仓(机制面)宿主产品领域 · 内容

依赖链单向:本仓 import 上游,宿主 import 本仓——反向依赖是门禁红线。

两个上游都是公开的 Go 模块矩阵,各有文档站,值得一并了解:

oekit — Open Easy Kit(开源 · 易用 · 工具集合) 一套按「框架耦合分层」组织的 Go 模块矩阵:37 个独立发版单元(微工具库、日志/追踪/ 指标门面、注册发现、HTTP/Kitex 框架生态、应用引导),依赖严格自底向上,每仓独立 SemVer + 独立 CI。本仓站在它上面的是三块基础件:oekit/pkg(errors / stringx / encoding 等微工具)、oekit/concurrency(GoSafe 等并发原语)、oekit/logx(日志门面)。🤖 AI 直读:oekit.github.io/llms.txt。

oagentkit — Open Agent Kit(Agent / LLM 编排工具链 模块矩阵)13 个独立发版的 Go 模块:模型客户端、MCP 工具池、技能库、知识检索、 Agent 编排、运行时基础设施;与 oekit 是姊妹项目(依赖其 pkg / concurrency / logx), 同为「框架耦合分层」组织。本仓的判定语义核心多落在它上面——派发守卫核心在 oagentkit/agent/dispatch、判定环与沙箱在 oagentkit/guardx(invoke / sandbox / injectband)、审计门在 oagentkit/toolgate、进程原语在 oagentkit/runtime/procx; 本仓的门面包(dispatch / policy / reminder / toolfail / sandbox)只做 调用面转发,核心实现在上游——跨宿主必须一致的判定语义不放两份实现。 🤖 AI 直读:oagentkit.github.io/llms.txt。

  • 独立发版、版本化引入、零 replace:go.mod 含 replace 即门禁红(公开 module, replace 会让下游 go get 整体失败)。本地多仓并行开发走 make devlink 的 workspace。
  • 依赖全部为 public 模块(github.com/oekit/*、github.com/oagentkit/*)。
  • 按包引入:contract / statemachine 是零外部依赖的叶子包——只想要状态机, 不必拖进 goja、jsonschema。
  • 平台支持:linux/amd64、linux/arm64、darwin/arm64 每次 make check 交叉构建验证; windows/amd64 可编译,进程树语义降级(无进程组信号,TERM 优雅退出降级为整树硬终止)。

文档地图

文档回答什么
设计初衷为什么长这样:编排是代码、机制与资产的分界、门禁文化
怎么用安装、三个约束、接入路线图、最小示例
能力详解九组能力:解决什么问题、关键符号、什么时候用
坑速查接完线自查:症状 → 真因(从仓内 USAGE §6 生成)
包清单与机器事实包表、依赖版本、规则清单、阈值(机器生成)
门禁体系make check 全链、规则与结构判定、数字纪律
仓内 docs/USAGE.md完整接入指南(逐包:职责 → 集成片段 → 关键符号 → 坑)
仓内 README定位、边界纪律、下游升级须知(破坏性变更表)
Next
设计初衷