新闻详情

新闻详情

首页 / 资讯中心 / 详情

AX 开发实战指南:构建、测试与部署 Google 的 Agentic 编排运行时

发布时间:2026/9/29 20:31:31来源:尧图网络
AX 开发实战指南:构建、测试与部署 Google 的 Agentic 编排运行时
人工智能AI AgentAgent 框架自主智能体【免费下载链接】axGoogles open agentic orchestration runtime项目地址https://gitcode.com/GitHub_Trending/ax11/ax点击查看免费下载本文以仓库文档 docs/development.md 为核心骨架结合 Makefile、源码与测试用例完整讲解 AX 项目的开发环境搭建、二进制与容器镜像构建、自动化测试以及向 Kubernetes 集群部署控制平面的完整流程。读完本文你将掌握make build/make install/make build-task-runner/make test等核心开发命令的底层实现原理并能独立完成一次从源码到集群部署的 AX 开发迭代。开发文档定位AX 开发者的一站式操作手册AX仓库根目录 README.md是一个运行在 Kubernetes 之上、基于 Agent Substrate 的高吞吐声明式编排运行时用于在集群中以沙箱化方式运行大规模自治 Agent 工作负载。docs/development.md是该项目面向开发者的核心入口文档它篇幅虽短却精炼地覆盖了开发 AX 本身的四条主线前置条件Prerequisites、构建Build、测试Test与贡献Contributing。它区别于面向使用者的 docs/concepts.md、docs/manifests.md 等指南——那些文档教你怎么用 AX 声明任务而 development.md 教你怎么为 AX 本身写代码、编译、验证并提交变更。本文将以该文档为主线逐节展开并深入 Makefile、cmd/ax/main.go、cmd/ax-server/main.go、cmd/ax-task-runner/main.go 与各测试文件把这些命令背后的工程细节讲透。一、环境准备开发 AX 需要哪些前置条件docs/development.md列出的四个前置条件每一项都对应仓库中的具体依赖逐个说明如下。1. Go 1.27AX 的模块声明与工具链要求完全一致。查看 go.mod模块名为github.com/google/axgo指令为1.27.1。项目直接依赖包括github.com/agent-substrate/substrateAgent Substrate 客户端库用于连接沙箱执行层的 Control APIgithub.com/agent-substrate/envAgent Substrate 的 guest 环境库ax ssh依赖的 gRPC 服务即基于它github.com/redis/go-redis/v9控制平面的状态存储客户端google.golang.org/grpc与google.golang.org/protobufgRPC API 与 Protobuf 序列化gopkg.in/yaml.v3清单manifest的 YAML 解析。2.ko控制平面镜像构建工具ko用于把 Go 程序构建并推送到容器仓库是部署 ax-server 的关键工具。Makefile 的deploy-server目标展示了它的用法deploy-server: KO_DOCKER_REPO$(AX_IMAGE_REPO) ko apply -f deploy/ax-server.yaml也就是说ko会读取 deploy/ax-server.yaml 中的镜像引用把 Go 源码现场编译成容器镜像并直接kubectl apply。它不需要本地预先构建镜像也不需要 Dockerfile。3. Docker 或 Podmantask-runner 镜像构建与ko不同task-runner 镜像因为要装入 Python 运行时、Antigravity 等非 Go 内容必须用传统容器工具构建。Makefile 顶部通过自动探测选择可用的容器 CLICONTAINER_CLI ? $(shell which podman 2/dev/null || which docker 2/dev/null)优先使用 Podman找不到时回退到 Docker。如果你的环境两者都没有make build-task-runner会因找不到$(CONTAINER_CLI)而失败。4. Kubernetes 集群与 kubeconfigAX 的控制平面Redis ax-server部署在ax-system命名空间同时每个任务都会被调度为 Agent Substrate 上的沙箱 Actor因此集群里必须已经安装好 Substrate落在ate-system命名空间。axCLI 会自动跟随当前 kubeconfig 的 context 来定位控制平面参见 README.md 的 Works with kubectx 一节所以一个可用的 kubeconfig 是运行ax get tasks之类命令的前提。注意development.md 面向开发 AX 本身它默认你已经有一个可用的集群如果只是想快速体验 AX 的功能请先读 README.md 的 Quick start那里有完整的从零部署流程。二、构建从源码产出 ax 与 ax-server 二进制make build一次产出两个本地二进制make build实际委托给build-binaries目标在仓库根目录创建bin/并编译两个程序build-binaries: mkdir -p bin go build -trimpath -ldflags-s -w -o bin/ax ./cmd/ax go build -trimpath -ldflags-s -w -o bin/ax-server ./cmd/ax-server两个二进制对应两个入口bin/axCLI 客户端源码在 cmd/ax/main.go。它实现apply、get、describe、watch、delete、ssh、suspend、resume、ctx、tunnel、version等命令通过 gRPC 与控制平面通信main.go顶部导入了internal/guest、internal/tunnel和pkg/apis/v1alpha1。bin/ax-server控制平面 API 服务器源码在 cmd/ax-server/main.go。它组装 Redis 存储、Redis 分布式锁、Substrate 客户端与 Reconciler最终启动一个同时承载 gRPC 与 HTTP 健康检查的服务通过 HTTP/2 h2c 复用端口。构建参数-trimpath会去除构建路径信息以增强可复现性-ldflags-s -w则剥离符号表与调试信息以显著缩小二进制体积——这是发布用二进制的标准配置。make install把 ax CLI 装进 GOPATHinstall: echo Installing ax CLI to $$(go env GOPATH)/bin... go install -trimpath -ldflags-s -w ./cmd/axgo install会把ax安装到$(go env GOPATH)/bin。请确保该目录在$PATH中例如export PATH$PATH:$(go env GOPATH)/bin安装完成后可直接运行ax version验证cmd/ax/main.go 中version命令会打印当前引擎版本信息如ax version v1alpha1 (standalone redis engine)。make build-task-runner交叉编译并打包任务容器这是 AX 构建流程中最特别的一步它分两阶段build-task-runner: mkdir -p bin/linux_amd64 GOOSlinux GOARCHamd64 CGO_ENABLED0 go build -trimpath -ldflags-s -w -o bin/linux_amd64/ax-task-runner ./cmd/ax-task-runner $(CONTAINER_CLI) build --platform linux/amd64 -t $(TASK_RUNNER_REPO):latest -f Dockerfile.task-runner .交叉编译无论你的开发机是什么平台都固定以GOOSlinux GOARCHamd64产出bin/linux_amd64/ax-task-runner。CGO_ENABLED0保证纯静态二进制不依赖宿主机的 C 库。构建镜像用Dockerfile.task-runner打包。查看 Dockerfile.task-runner 可以看到镜像内容FROM python:3.12-slim RUN apt-get update apt-get install -y --no-install-recommends \ git curl ca-certificates openssh-client procps bash \ rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir google-antigravity COPY bin/linux_amd64/ax-task-runner /usr/local/bin/ax-task-runner COPY cmd/ax-task-runner/antigravity_bootstrap.py /usr/local/bin/antigravity_bootstrap.py ENTRYPOINT [/usr/local/bin/ax-task-runner]镜像以 Python 3.12 slim 为基础装好 git/curl/openssh-client 等工具安装google-antigravityPython 包并把ax-task-runner二进制与 cmd/ax-task-runner/antigravity_bootstrap.py 引导脚本放入/usr/local/bin/。ENTRYPOINT固定为 ax-task-runner这也印证了 docs/runner.md 中的约定控制平面始终以固定命令启动任务容器runner 作为 PID 1 负责解析任务规范并启动用户命令。ax-task-runner的入口代码在 cmd/ax-task-runner/main.go它支持通过环境变量AX_TASK_YAML和AX_WORKSPACES_YAML接收控制平面下发的任务与工作区规范也支持--task-file与可重复的--workspace-file标志从本地文件读取便于本地调试。make push-task-runner推送镜像并查看 digestpush-task-runner: build-task-runner $(CONTAINER_CLI) push $(TASK_RUNNER_REPO):latest gcloud container images list-tags $(TASK_RUNNER_REPO) --filtertagslatest --formatget(digest)注意两点它依赖build-task-runner所以一条命令完成编译 → 构建镜像 → 推送全流程镜像仓库通过TASK_RUNNER_REPO变量指定默认值为$(AX_IMAGE_REPO)/ax-task-runner而AX_IMAGE_REPO默认是gcr.io/ax-substrate/ate-images见 Makefile 顶部。实际使用时请务必覆盖为你自己的仓库例如make push-task-runner TASK_RUNNER_REPOgcr.io/your-project/ax-task-runner推送后命令还会调用gcloud container images list-tags打印当前latest标签对应的 digest方便你确认发布内容。三、测试一条命令跑遍全部验证make test与go test -v ./...development.md 指出测试会运行一切包括 mock Substrate gRPC 服务器、内存存储验证和 API 服务器测试。其实现就是标准的 Go 全量测试test: echo Running tests... go test -v ./...即make test等价于go test -v ./...-v输出每个用例的详细结果。与很多仓库只测纯逻辑不同AX 的测试覆盖了从 CLI 到控制平面、从存储到 Substrate 集成的多个层次测试文件与代码文件一一对应测试文件覆盖内容cmd/ax/apply_test.go、cmd/ax/main_test.goCLI 参数解析与apply等命令行为internal/server/server_test.gogRPC API 服务器的核心逻辑internal/store/memory/store.go 对应测试内存版 Store 实现make test无需 Redis 即可验证存储语义internal/substrate/client_test.gomock Substrate gRPC 服务器上的客户端连接、鉴权与调用internal/lock/lock_test.go分布式锁行为internal/metadata/server_test.go沙箱内元数据服务internal/workspace/planner_test.go、internal/workspace/setup_test.go工作区规划与准备流程runner/runner_test.go任务容器内 runner 生命周期pkg/apis/v1alpha1/types_test.goAPI 类型与序列化internal/controller/reconciler_test.goTask Reconciler 协调逻辑internal/tunnel/tunnel_test.goCLI 到控制平面的隧道机制由于控制平面在开发期依赖 Redis 与 Substrate 这两个外部组件仓库特意提供了内存版 Storeinternal/store/memory/store.go与内存版 Lockerlock.NewMemoryLocker()见 internal/server/server.go并在 cmd/ax-server/main.go 中通过server.Options注入——这正是无外部依赖也能完整跑测试的设计基础。测试驱动的开发建议从 Makefile 的clean目标可以看出仓库对构建产物的管理方式rm -rf bin/。在提交代码前建议按以下顺序自检go mod tidy git diff --exit-code go.mod go.sum # 依赖一致性 make build # 两个二进制都能编译 make test # 全量测试通过这一点与 CONTRIBUTING.md 中 Make changes and verify 一节的建议完全一致。四、从开发到集群部署控制平面虽然 development.md 正文没有展开部署命令但 CONTRIBUTING.md 和 Makefile 都包含完整的部署目标这里一并补全让构建 → 测试 → 部署形成闭环。make deploy一键部署 Redis 与 ax-serverdeploy: deploy-redis deploy-server deploy-redis: kubectl apply -f deploy/redis.yaml deploy-server: KO_DOCKER_REPO$(AX_IMAGE_REPO) ko apply -f deploy/ax-server.yamldeploy-redis把 deploy/redis.yaml 直接应用到集群deploy-server通过ko现场构建镜像并部署 deploy/ax-server.yaml产物落在ax-system命名空间。实际部署时需要覆盖镜像仓库make deploy AX_IMAGE_REPOgcr.io/your-project/ax-images控制平面 ax-server 的启动参数可以在 cmd/ax-server/main.go 中看到理解它们对排查部署问题很有帮助参数默认值说明-addr:8080HTTP 监听地址gRPC 与健康检查共用-redis-addrlocalhost:6379Redis 地址-redis-password空Redis 密码-substrate-endpointapi.ate-system.svc.cluster.local:443Substrate Control API 地址-substrate-authorityapi.ate-system.svcTLS ServerName-substrate-token-file/-substrate-ca-file空Substrate 鉴权 token 与 CA 文件-substrate-insecure-tls/-substrate-plaintextfalseTLS 校验开关与明文 gRPC-templatedefault-template默认 Substrate ActorTemplate 名称-template-atespaceax-systemActorTemplate 所在 atespace同时支持ADDR、REDIS_ADDR、REDIS_PASSWORD环境变量覆盖代码中优先读取环境变量。若 Substrate 客户端初始化失败ax-server 会打日志降级为无 Substrate 协调模式继续运行方便纯 API 层开发调试。验证一次完整的开发迭代make build→ 产出bin/ax与bin/ax-servermake test→ 全量测试通过make deploy AX_IMAGE_REPO你的仓库→ 控制平面就绪./bin/ax apply -f examples/task.yaml→ 提交示例任务examples/task.yaml 同时声明 Task、Workspace 与 Model./bin/ax watch task 任务名→ 观察任务状态流转。仓库还提供了 demo.sh 端到端演示脚本覆盖应用自定义工作区 → 等待就绪 →ax ssh执行命令 → 挂起任务的完整生命周期是开发期验证 runner 行为最便捷的途径。五、参与贡献CLA、分支与 PR 流程development.md 将贡献规范指向 CONTRIBUTING.md其核心要点如下。签署 Google CLA所有提交包括项目成员都需要遵循 Google 的 Contributor License AgreementCLA要求。CLA 只要求授权 Google 使用你的贡献不涉及版权转移使用 AI/工具辅助生成的代码同样需要满足 CLA 要求。如果你或雇主已为其他 Google 项目签署过 CLA通常无需重复签署。标准 PR 流程Fork 并克隆仓库添加upstream远程指向 google/ax 的 main保持 main 最新git fetch upstream后git merge --ff-only upstream/main创建特性分支git checkout -b my-feature修改并验证make test、确认go mod tidy后go.mod/go.sum无 diff、make build通过提交并开 PRcommit message 建议使用 Conventional Commits 风格如feat: describe your changes推送到 fork 后向google/ax的main开 Pull Request并说明改动动机。项目遵循 Googles Open Source Community Guidelines所有提交含成员提交都要经过代码评审。六、开发 AX 的实用路径总结场景命令产物/效果编译本地二进制make buildbin/ax、bin/ax-server-trimpath 去符号体积小安装 CLI 到 PATHmake install$(go env GOPATH)/bin/ax构建任务容器镜像make build-task-runnerbin/linux_amd64/ax-task-runner 容器镜像自动选 podman/docker构建并推送镜像make push-task-runner TASK_RUNNER_REPOrepo推送镜像并打印 digest全量测试make test即go test -v ./...覆盖 CLI、API 服务器、内存存储、mock Substrate 等全部用例部署控制平面make deploy AX_IMAGE_REPOrepo应用 Redis 清单ko构建并部署 ax-server 到ax-system清理构建产物make clean删除bin/这套流程的核心设计是少依赖、可复现测试不依赖外部服务内存 Store mock Substrate镜像构建固定 linux/amd64 静态编译部署统一走清单 ko。理解 Makefile 和 cmd/ax-server/main.go 这两份文件就等于掌握了 AX 开发与交付的全部主线。延伸阅读docs/concepts.mdTask、Workspace、Model 三大核心概念与任务状态机docs/runner.mdrunner 与控制平面的契约以及如何自研 runner 镜像docs/sandbox.mdrunner 启动后沙箱内可依赖的元数据服务、guest 服务与环境docs/manifests.md每种资源的 YAML 写法DESIGN.md控制平面整体架构与 API 参考Makefile 与 CONTRIBUTING.md本文所有命令的权威来源。注AX 仍处于重度开发期README.md 明确提示核心概念、协议与规范仍在快速演进稳定版发布前会引入破坏性变更开发时请以仓库当前 main 分支为准。赞分享人工智能AI AgentAgent 框架自主智能体【免费下载链接】axGoogles open agentic orchestration runtime项目地址https://gitcode.com/GitHub_Trending/ax11/ax点击查看免费下载相关推荐AX智能体编排运行时用SQLite还是Postgres本地开发vs生产部署终极选型指南AX智能体编排运行时用SQLite还是Postgres本地开发vs生产部署终极选型指南 AXAgent Executor 是 Google 开源的 智能体人工智能AI AgentAgent 框架自主智能体Flynn 平台 Java 应用部署实战Maven/Gradle 构建、OpenJDK 运行时与 Procfile 进程编排Flynn 平台 Java 应用部署实战Maven/Gradle 构建、OpenJDK 运行时与 Procfile 进程编排 本篇技术指南聚焦于在 Flynn云原生微服务容器编排运维ZenML Dynamic Pipelines 实战指南运行时构建 DAG、Map/Reduce 与并行编排ZenML Dynamic Pipelines 实战指南运行时构建 DAG、Map/Reduce 与并行编排 导读 ZenML 的动态管道Dynamic PMLOps机器学习后端工作流自动化AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从 RAG 知识库到 GEO:企业如何向外输出可信知识给公共大模型 2026/9/29 21:12:52

从 RAG 知识库到 GEO:企业如何向外输出可信知识给公共大模型

当前很多企业的 AI 数字化建设,优先落地了内部 RAG 检索增强知识库,用来解决员工内部问答、业务资料查询、内部智能助手等场景。简单来说,RAG 把企业文档、产品手册、技术方案、项目资料做切片、向量化,存入私有向量库。当内部员工…

阅读更多 →
SpringBoot+SSM师生互动系统开发实战:从数据库设计到答辩全流程解析 2026/9/29 21:12:52

SpringBoot+SSM师生互动系统开发实战:从数据库设计到答辩全流程解析

1. 项目概述与核心需求拆解1.1 这个项目到底解决什么问题先说结论:这是一个典型的Java Web全栈教学互动系统,面向高校、培训机构或中小学在线教学场景,用SpringBoot作为主框架整合SSM组件,实现教师与学生之间的"桥梁"—…

阅读更多 →
从“乱写”到“可维护”:用Trae和Cursor配TaoToken搞定Java企业级规范 2026/9/29 21:12:38

从“乱写”到“可维护”:用Trae和Cursor配TaoToken搞定Java企业级规范

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
不会写大纲?2026年AI论文写作工具排行榜权威发布,TaoToken统一Key接入实测 2026/9/29 21:12:38

不会写大纲?2026年AI论文写作工具排行榜权威发布,TaoToken统一Key接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
极客的“固执”:Amp Code 拒绝通用协议后,如何用 TaoToken 统一 Key 重塑 AI 编程范式 2026/9/29 21:12:38

极客的“固执”:Amp Code 拒绝通用协议后,如何用 TaoToken 统一 Key 重塑 AI 编程范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
MCP 论文精读:Model Context Protocol 全景、安全威胁与未来研究方向 2026/9/29 21:12:38

MCP 论文精读:Model Context Protocol 全景、安全威胁与未来研究方向

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉