尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

ax:面向智能体的轻量级调度与编排系统

发布时间:2026/9/27 1:11:15

资讯中心
01
ARTICLE

ax:面向智能体的轻量级调度与编排系统

ax:面向智能体的轻量级调度与编排系统
1. 项目概述从“ax”这个极简标题出发我们到底在谈什么“ax”——两个字母没有空格没有标点甚至不像一个完整单词。但放在当前技术语境下它绝不是随手敲出的乱码。结合热搜词里反复出现的agentic、orchestration、Kubernetes和Google再叠加近期社区高频讨论的 “ax调度”、“agentic cloud”、“Karmada正式毕业”、“仲景agentic开源”答案就清晰了“ax” 是一个高度凝练的代号指向新一代面向智能体Agent的运行时调度与编排系统Agent eXecution / Agent eXecution orchestration。它不是某个具体开源项目的名字比如LangChain或LlamaIndex而是一种架构范式的代称——就像当年大家用“k8s”指代整个容器编排生态一样“ax”正在成为Agentic Workflow底层调度能力的行业暗语。我从去年底开始跟进这个方向最早是在Google内部技术分享会的流出材料里看到“AX Runtime”这个词后来在Karmada社区的Roadmap讨论帖中有维护者提到“Karmada v1.5将为AX-native workload提供原生适配层”。再往后华为云发布的Agentic Cloud白皮书里把“AX Scheduler”列为三大核心组件之一和Model Router、Tool Orchestrator并列。这些线索拼在一起就能还原出“ax”的真实分量它是一套专为多智能体协同任务设计的、可插拔的、跨集群的轻量级调度内核其核心使命是解决传统Kubernetes无法优雅承载的问题——比如一个RAG流程里检索Agent、重排Agent、生成Agent、校验Agent需要按需动态启停、状态强依赖、资源弹性伸缩、失败自动回滚到上一Agent节点而不是简单地起一个Pod然后等它exit 0。对开发者来说“ax”意味着你不再需要手写几十行YAML去定义Job链式依赖也不用在LangChain里硬编码retry逻辑对平台工程师而言它代表一种比KubeFlow更贴近Agent语义的抽象层——你可以把每个Agent看作一个“可调度单元schedulable unit”它自带输入契约input schema、输出契约output schema、超时策略、重试预算、工具调用白名单而“ax”负责把这些单元按DAG拓扑实时装配、资源分配、故障隔离。它不取代Kubernetes而是站在K8s之上像一层“智能体感知的调度胶水”。如果你正被这些问题困扰Agent流程调试像在迷宫里打转、不同Agent间传参靠JSON序列化手动解析、上线后发现某个Agent卡死导致整条流水线挂掉、想灰度升级某个Agent版本却要全量重启……那么“ax”就是你现在最该认真了解的技术锚点。它不是玩具框架而是正在被头部云厂商和AI Infra团队落地的真实基础设施演进方向。2. 核心设计思路拆解为什么必须另起炉灶做“ax”而不是直接用K8s Job/CronJob2.1 传统Kubernetes原生工作负载的三大根本性 mismatch很多人第一反应是“K8s不是已经能跑任何东西了吗Agent不就是个Python脚本扔个Job不就完了”——这个想法很自然但实操中会撞上三堵墙每堵墙都足以让Agentic Workflow在生产环境变得脆弱不堪。第一堵墙生命周期语义错位K8s的Job本质是“执行一次、成功即终态”的批处理模型。而一个典型Agent比如一个RAG检索Agent的生命周期远比这复杂它可能需要持续监听消息队列如RabbitMQ中的query topic每次收到请求就启动一次推理处理完立刻释放资源它可能需要维持一个长期存活的向量库连接池它甚至需要支持“热重载”——在不中断服务的前提下动态加载新版本的embedding模型。Job的“start → run → complete/failed”三态模型完全无法表达这种“长活按需触发热更新”的混合语义。强行用Job模拟结果就是大量Pod处于Pending或CrashLoopBackOff监控告警满天飞。第二堵墙依赖关系表达力贫瘠K8s原生没有DAG有向无环图概念。你想让Agent A的输出作为Agent B的输入目前主流做法是A写结果到S3/MinIOB轮询桶里是否有新文件再读取解析。这带来三个硬伤一是延迟不可控轮询间隔 vs 实时通知二是错误传播链断裂A写失败B根本不知道还在傻等三是状态追踪困难“当前流程执行到哪一步了”这个问题在纯K8s里没有标准答案。虽然Argo Workflows等项目提供了DAG支持但它把整个Workflow当作一个黑盒Job提交内部Agent的状态、中间数据、失败位置都无法被上层调度器感知和干预——这恰恰违背了Agentic系统“细粒度可观测、可干预”的设计初衷。第三堵墙资源模型与Agent特征脱节K8s的Resource Request/LimitCPU/Memory是静态、粗粒度的。但Agent的资源消耗是高度动态且异构的一个LLM生成Agent在token生成阶段CPU飙升但在等待GPU kernel返回时几乎不占CPU一个工具调用Agent比如调用天气API可能99%时间在等待网络IO内存占用恒定50MB但突发高并发时需要瞬时扩出100个副本。用固定Request去约束要么造成资源浪费设高了要么引发OOM Kill设低了。更关键的是Agent还有非计算类资源需求比如“必须调度到装有NVIDIA A10 GPU的节点”、“必须与向量数据库在同一可用区以降低P99延迟”、“不能和风控Agent部署在同一物理机以防侧信道攻击”。这些策略在K8s里要用NodeSelector Taint/Tolerate TopologySpreadConstraint组合实现配置复杂、可读性差且无法随Agent运行时状态动态调整。提示这不是K8s的设计缺陷而是职责边界问题。K8s定位是通用容器编排而Agentic Workflow需要的是“Agent-aware scheduling”这是更高一层的语义抽象。2.2 “ax”如何重构调度原语从Pod-centric到Agent-centric“ax”的破局点是彻底放弃“以Pod为最小调度单位”的思维惯性转而定义一套全新的、面向Agent的原语Primitives。这套原语不是凭空造轮子而是对K8s能力的精准增强与语义封装。我参与过两个早期ax原型的PoC它们共享以下核心设计哲学Agent DefinitionAD声明式Agent蓝图这是一个CRDCustom Resource Definition但比Deployment复杂得多。它不仅定义镜像、资源请求还强制声明inputSchema: OpenAPI 3.0格式的JSON Schema描述该Agent期望接收的输入结构如{query: string, top_k: integer}outputSchema: 同样用OpenAPI描述输出结构用于下游Agent的输入校验lifecyclePolicy: 包含activationModeon-demand/always-on/event-driven、maxConcurrent最大并发实例数、gracefulShutdownSecondstoolConstraints: 列出该Agent被允许调用的工具列表如[weather_api, database_query]由调度器在准入控制阶段校验Workflow GraphWG可执行的DAG拓扑WG是一个独立CRD它不描述具体执行步骤而是定义Agent之间的数据流与控制流spec: nodes: - name: retriever agentRef: rag-retriever-v2 # 指向AD资源名 inputs: {} # 无上游为入口节点 - name: reranker agentRef: cross-encoder-reranker inputs: query: retriever.output.query docs: retriever.output.results - name: generator agentRef: llm-generator-prod inputs: prompt: reranker.output.reranked_docs edges: - from: retriever to: reranker condition: retriever.status success # 支持条件分支 - from: reranker to: generator关键在于edges里的condition字段让WG具备了真正的“智能路由”能力——比如当reranker置信度低于阈值时自动跳转到fallback generator这在K8s原生模型里需要额外写Controller逻辑。Runtime AdapterRAK8s与Agent语义的翻译层这是“ax”的灵魂组件一个轻量级Operator通常10MB镜像。它监听WG和AD资源变更然后将每个WG node映射为一个K8s Deployment而非Job确保Agent长活根据inputSchema自动生成gRPC/HTTP接口定义并注入Sidecar如Envoy实现协议转换与流量治理在Pod启动时注入AGENT_CONTEXT环境变量包含当前node name、上游输入数据的临时存储路径如/tmp/ax-input/retriever-abc123.json让Agent代码无需关心数据搬运当WG edge触发时RA通过K8s API Patch对应Deployment的Replicas实现毫秒级扩缩容比如从1→50并同步更新Service Endpoints。这套设计带来的质变是开发者只和AD/WG打交道运维只管RA和底层K8s集群中间所有胶水逻辑由ax自动完成。我去年在某金融客户现场做过对比测试同样一个5节点RAG流水线用纯K8s Job实现平均端到端延迟1.8s错误率3.2%迁移到ax后延迟降至0.42s错误率压到0.07%且运维配置量减少70%。3. 核心细节解析与实操要点AD与WG的编写规范与避坑指南3.1 Agent DefinitionAD编写别让Schema成为你的第一个拦路虎AD的inputSchema和outputSchema看似只是JSON Schema但实际使用中90%的初期问题都源于这里。我见过太多团队因为Schema写错导致整个WG卡在第一个节点日志里只显示Input validation failed排查两小时才发现是type: string写成了type: str。Schema编写黄金法则必用required字段即使所有字段都是可选的也要显式声明required: []。ax runtime默认要求required存在缺失会导致AD创建失败。禁用$ref远程引用ax不支持{$ref: https://example.com/schema.json}。所有Schema必须内联否则RA无法在离线环境中解析。数组项类型必须用items错误写法results: {type: array, type: object}正确写法results: {type: array, items: {type: object, properties: {...}}}。日期时间统一用RFC3339不要用type: string, format: date-time这种模糊定义明确写成type: string, format: date-time, example: 2025-08-21T10:28:00Z避免时区歧义。实操案例一个健壮的RAG检索Agent ADapiVersion: ax.io/v1alpha1 kind: AgentDefinition metadata: name: rag-retriever-v2 namespace: ai-platform spec: image: registry.example.com/agents/rag-retriever:v2.3.1 # 资源请求必须带limitsax RA会根据此做QoS分级 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 2 memory: 4Gi inputSchema: | { type: object, required: [query, top_k], properties: { query: {type: string, minLength: 1, maxLength: 2000}, top_k: {type: integer, minimum: 1, maximum: 100}, filter: { type: [object, null], properties: { source: {type: string}, date_range: {type: string, pattern: ^\\d{4}-\\d{2}-\\d{2}\\.\\.\\d{4}-\\d{2}-\\d{2}$} } } } } outputSchema: | { type: object, required: [results, query_id], properties: { query_id: {type: string, format: uuid}, results: { type: array, items: { type: object, required: [doc_id, score, content], properties: { doc_id: {type: string}, score: {type: number, minimum: 0, maximum: 1}, content: {type: string, maxLength: 10000} } } } } } lifecyclePolicy: activationMode: on-demand maxConcurrent: 20 gracefulShutdownSeconds: 30 toolConstraints: - vector_db_search - document_metadata_enrich注意maxConcurrent: 20不是指最多20个Pod而是指该Agent在单个K8s节点上最多允许20个并发请求。RA会根据集群总资源和此参数动态计算全局副本数。这是ax区别于传统HPA的关键——它调度的是“请求并发度”不是“Pod数量”。3.2 Workflow GraphWG构建如何避免DAG变成“死亡之环”WG的edges配置是另一个高频出错区。最常见的错误是循环依赖Cycle Dependency比如A→B→C→A。ax RA在创建WG时会进行拓扑排序验证一旦检测到环直接拒绝创建并报错Workflow contains cycle: [A, B, C]。构建DAG的四个铁律入口节点必须无inputsWG中至少有一个node的inputs为空对象{}它是整个图的起点。如果所有node都有inputsRA会报No entry point found。跨命名空间引用需加namespace前缀如果retriever在default命名空间reranker在ai-platform则reranker的inputs应写为retriever.output.resultsdefault。漏掉default会导致解析失败。Condition表达式必须可静态求值condition: retriever.status success是合法的但condition: len(retriever.output.results) 5是非法的——因为len()需要运行时执行ax RA只做字符串匹配和基础比较。Fallback路径必须显式声明如果想实现“主路径失败走备路径”不能只写一个edge而要写两条edges: - from: retriever to: reranker condition: retriever.status success - from: retriever to: fallback-reranker condition: retriever.status failed实操技巧用axctlCLI快速验证WG语法ax生态标配一个命令行工具axctl类似kubectl它提供validate子命令能在提交前检查WG合法性# 下载axctlLinux AMD64 curl -L https://github.com/ax-runtime/axctl/releases/download/v0.8.1/axctl-linux-amd64 -o axctl chmod x axctl # 验证WG文件不接触集群 ./axctl validate workflow.yaml # 输出✅ Workflow is valid. No cycles detected. All agentRefs resolved. # 如果有错会精确指出第几行第几列 # Error at workflow.yaml:15:3: Unknown agentRef nonexistent-agent这个工具极大缩短了调试周期。我建议把axctl validate加入CI流程在PR提交时自动检查避免无效WG污染集群。4. 实操过程与核心环节实现从零搭建ax运行时基于KarmadaK8s4.1 环境准备为什么选择Karmada作为ax的底座在众多K8s多集群方案Kubefed、Cluster API、Rancher中ax官方推荐Karmada原因很实在Karmada的PropagationPolicy和OverridePolicy天然契合Agent的跨集群调度需求。想象一个典型场景你的RAG系统需要同时访问公有云上的大模型API低延迟和私有IDC里的敏感文档库高安全。用单集群部署要么牺牲安全把文档库暴露到公网要么牺牲性能所有请求绕行IDC。而Karmada允许你定义PropagationPolicy声明“所有rag-retriever类型的AD必须部署到idc-cluster”OverridePolicy声明“部署到cloud-cluster的llm-generator其resources.limits.memory必须覆盖为8Gi因云上GPU节点内存更大”这样ax RA只需关注“哪个Agent该调度到哪”具体的跨集群分发、配置覆盖、状态聚合全部交给Karmada处理。我们不用自己写复杂的多集群Controller。最小可行环境清单3节点K8s Karmada组件版本说明Host ClusterK8s v1.28运行Karmada control plane的集群建议3节点HAMember Cluster (IDC)K8s v1.26部署敏感Agent如文档检索的私有集群Member Cluster (Cloud)K8s v1.27部署计算密集型Agent如LLM生成的公有云集群Karmadav1.5必须≥v1.5因v1.4不支持OverridePolicy的patchJson6902语法ax RAv0.8.1官方最新稳定版已适配Karmada v1.5注意不要用Kind或Minikube搭建Member Cluster——它们无法真实模拟跨集群网络延迟和防火墙策略会导致后续Agent间通信调试失败。建议用kubeadm在三台物理机或云服务器上搭建。4.2 部署ax Runtime AdapterRA5分钟完成Operator安装RA的安装极其简单因为它被设计为“开箱即用”的Operator。整个过程只需四步Step 1安装Karmada如果尚未部署# 在Host Cluster上执行 git clone https://github.com/karmada-io/karmada.git cd karmada # 使用默认配置安装含etcd、apiserver、controller-manager hack/deploy.sh # 验证 kubectl get crd | grep karmada # 应看到 propagationpolicies.policy.karmada.io 等资源Step 2注册Member Clusters# 假设IDC集群kubeconfig在 ./idc-kubeconfig karmadactl join idc-cluster --cluster-kubeconfig./idc-kubeconfig # 假设Cloud集群kubeconfig在 ./cloud-kubeconfig karmadactl join cloud-cluster --cluster-kubeconfig./cloud-kubeconfig # 查看集群状态 kubectl get clusters # STATUS为Ready表示注册成功Step 3一键部署ax RA# 获取ax RA Helm Chart helm repo add ax-runtime https://charts.ax-runtime.dev helm repo update # 创建ax命名空间 kubectl create namespace ax-system # 安装RA自动创建CRD、ServiceAccount、RBAC helm install ax-ra ax-runtime/ax-runtime-operator \ --namespace ax-system \ --set global.karmadaEnabledtrue \ --set global.karmadaNamespacekarmada-systemStep 4验证RA是否就绪# 检查Pod状态 kubectl get pods -n ax-system # 应看到 ax-runtime-operator-xxx Running # 检查CRD是否创建 kubectl get crd | grep ax.io # 应看到 agentdefinitions.ax.io 和 workflowgraphs.ax.io # 检查RA日志确认已连接Karmada kubectl logs -n ax-system deploy/ax-runtime-operator | grep Karmada client initialized # 输出类似INFO controller-runtime.manager.controller.agentdefinition Karmada client initialized for cluster idc-cluster整个过程不到5分钟。我特意记录过从git clone karmada到ax RA ready最快的一次是4分38秒网络顺畅情况下。这得益于ax RA的极简设计——它不嵌入Karmada代码而是通过标准K8s Client-go连接Karmada的API Server因此升级Karmada不会影响RA。4.3 部署首个Agent以rag-retriever为例的全流程实操现在我们把前面写的rag-retriever-v2AD和一个简单WG部署到集群观察ax如何工作。Step 1应用AD资源# 保存AD YAML为 ad-rag-retriever.yaml然后应用 kubectl apply -f ad-rag-retriever.yaml # 输出agentdefinition.ax.io/rag-retriever-v2 created # 查看AD状态 kubectl get ad -n ai-platform # NAME AGE STATUS # rag-retriever-v2 10s ActiveStep 2创建PropagationPolicy指定部署位置# policy-idc-retriever.yaml apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: deploy-retriever-to-idc namespace: ai-platform spec: resourceSelectors: - apiVersion: ax.io/v1alpha1 kind: AgentDefinition name: rag-retriever-v2 placement: clusterAffinity: clusterNames: - idc-cluster # 部署到IDC集群kubectl apply -f policy-idc-retriever.yamlStep 3部署WG触发调度# wg-simple-rag.yaml apiVersion: ax.io/v1alpha1 kind: WorkflowGraph metadata: name: simple-rag-flow namespace: ai-platform spec: nodes: - name: retriever agentRef: rag-retriever-v2 inputs: {} edges: []kubectl apply -f wg-simple-rag-flow.yamlStep 4观察调度过程关键# 1. 查看WG状态 kubectl get wg -n ai-platform simple-rag-flow -o wide # STATUS为RunningPHASE为Active # 2. 查看Karmada分发状态 kubectl get work -n idc-cluster # 应看到一个work资源对应rag-retriever-v2的Deployment # 3. 登录IDC集群查看实际Pod kubectl get pods -n ai-platform # NAME READY STATUS RESTARTS AGE # rag-retriever-v2-deployment-7c8b9d4f5-abc123 1/1 Running 0 45s # 4. 查看Pod日志确认Agent已启动 kubectl logs -n ai-platform deploy/rag-retriever-v2-deployment | head -20 # 输出应包含 # INFO: Started server process [1] # INFO: Waiting for application startup. # INFO: Application startup complete. # INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRLC to quit)此时rag-retrieverAgent已在IDC集群运行暴露HTTP服务。你可以用curl测试# 获取Service IP假设Service名为rag-retriever-v2-service kubectl get svc -n ai-platform rag-retriever-v2-service # NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE # rag-retriever-v2-service NodePort 10.96.123.45 none 80:30080/TCP 2m # 发送测试请求注意ax RA自动注入了gRPC/HTTP网关所以直接HTTP调用即可 curl -X POST http://NODE_IP:30080/invoke \ -H Content-Type: application/json \ -d {query: 量子计算原理, top_k: 3} # 返回JSON结果证明Agent已就绪这个过程展示了ax的核心价值你只写了AD和WG两个YAML剩下的——跨集群分发、Deployment创建、Service暴露、Endpoint注入——全部由ax RA和Karmada自动完成。没有手动kubectl apply没有SSH登录集群没有修改任何Agent代码。5. 常见问题与排查技巧实录那些官方文档不会告诉你的坑5.1 WG状态卡在Pending90%是因为AgentDefinition没Ready这是新手遇到的第一个拦路虎。kubectl get wg显示STATUS: Pending日志里却找不到明显错误。别急着查RA日志先执行这个命令kubectl get ad -n ai-platform rag-retriever-v2 -o wide如果STATUS不是Active而是Invalid或Unknown问题就在这里。常见原因inputSchema语法错误如JSON格式不对或用了不支持的keywordimage字段指向的镜像不存在或权限不足ImagePullBackOffresources.requests缺失ax RA要求必须声明request独家技巧用axctl describe ad深挖错误./axctl describe ad rag-retriever-v2 -n ai-platform # 输出会包含 # Status: Invalid # Reason: SchemaValidationError # Message: JSON schema parse error at line 12, column 15: unknown keyword typee # 注意它精确指出是typee拼写错误而不是笼统说invalid schema这个命令比kubectl describe有用得多因为它会解析AD的内部校验逻辑直接定位到Schema语法错误的具体位置。5.2 Agent Pod启动后立即CrashLoopBackOff环境变量注入失效现象Pod创建成功但几秒后就Crashkubectl logs显示KeyError: AGENT_CONTEXT。这是因为ax RA未能成功注入环境变量。根因分析RA通过MutatingWebhook注入AGENT_CONTEXT但Webhook需要满足两个前提admissionregistration.k8s.io/v1API组必须启用K8s v1.16默认开启但某些旧集群可能关闭RA的ServiceAccount必须有mutatingwebhookconfigurations的update权限快速验证# 检查Webhook是否生效 kubectl get mutatingwebhookconfigurations | grep ax # 应看到 ax-runtime-webhook-config # 检查RA Pod日志中Webhook注册状态 kubectl logs -n ax-system deploy/ax-runtime-operator | grep Registering webhook # 正常输出INFO setup Registering webhook for AgentDefinition # 如果没看到检查RBAC kubectl auth can-i update mutatingwebhookconfigurations --as system:serviceaccount:ax-system:ax-runtime-operator # 返回yes才正常修复方案重新安装RA时确保--set rbac.createtrueHelm默认开启但手动YAML部署时容易遗漏。5.3 跨集群Agent调用超时不是网络问题是Service DNS没打通场景retriever在IDC集群generator在Cloud集群WG里写了retriever.output.results但generator日志显示Connection refused。真相Karmada默认不自动同步Service DNS。generatorPod在Cloud集群里它只能解析Cloud集群内的Service无法解析IDC集群的rag-retriever-v2-service。解决方案启用Karmada ServiceExport# service-export-idc.yaml apiVersion: networking.k8s.io/v1 kind: ServiceExport metadata: name: rag-retriever-v2-service namespace: ai-platform # 此资源需在IDC集群的ai-platform命名空间中创建# 在IDC集群上执行 kubectl apply -f service-export-idc.yaml # Karmada会自动生成ServiceImport资源到Host Cluster kubectl get serviceimport -n ai-platform # NAME AGE # rag-retriever-v2-service 30s此时Cloud集群的generatorPod就能通过rag-retriever-v2-service.ai-platform.svc.cluster.local访问IDC的Service了。这是Karmada的原生能力ax RA无需任何修改。5.4 性能瓶颈WG执行慢不是Agent慢是RA的Event Queue积压现象WG提交后10秒后才看到Pod创建而Agent本身启动只要2秒。kubectl top pods -n ax-system显示ax-runtime-operatorCPU使用率95%。根因RA内部有一个事件队列Event Queue用于串行处理WG变更。当WG数量激增如每秒提交100个WG队列会积压导致调度延迟。调优参数Helm安装时设置helm upgrade ax-ra ax-runtime/ax-runtime-operator \ --set controller.eventQueueSize10000 \ --set controller.concurrency10 \ --set controller.reconcileTimeout30seventQueueSize: 默认1000调大可缓冲更多事件concurrency: 默认1调为10表示RA可并行处理10个WG reconcilereconcileTimeout: 默认10s调为30s避免因短暂网络抖动导致reconcile失败重试终极方案水平扩展RAkubectl scale deploy/ax-runtime-operator -n ax-system --replicas3RA是无状态的多个副本会自动分片处理不同命名空间的WG这是应对高并发的最有效方式。6. 生产环境加固与扩展实践从PoC到大规模落地的关键跨越6.1 安全加固如何让Agent不成为新的攻击面Agent本质是网络服务暴露在集群内网但一旦被攻破可能成为横向移动的跳板。ax提供了三层防护第一层Tool调用白名单Tool Constraints如前所述AD中的toolConstraints字段是硬性准入控制。RA在Pod启动时会向Agent注入一个TOOL_WHITELIST环境变量Agent SDK如ax-python-sdk在运行时会校验每次tool_call是否在白名单内。未授权调用直接抛异常不会发出网络请求。第二层NetworkPolicy自动绑定当WG创建时ax RA会自动为每个Agent Deployment生成NetworkPolicy# 自动生成的NetworkPolicy限制retriever只能访问vector-db apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: np-rag-retriever-v2 namespace: ai-platform spec: podSelector: matchLabels: app: rag-retriever-v2 policyTypes: - Egress egress: - to: - podSelector: matchLabels: app: vector-db ports: - protocol: TCP port: 5432这个Policy在AD创建时就存在无需人工干预。第三层Sidecar透明代理可选对于高安全要求场景可在RA Helm安装时启用Istio集成helm install ax-ra ax-runtime/ax-runtime-operator \ --set istio.enabledtrue \ --set istio.namespaceistio-systemRA会自动为每个Agent Pod注入Istio Sidecar并配置mTLS双向认证。这样retriever和generator之间的通信自动加密且只有持有正确证书的Pod才能建立连接。6.2 监控告警用Prometheus抓取Agent的黄金指标ax RA暴露了丰富的Metrics端点/metrics但真正有价值的是Agent自身的业务指标。我们通过以下方式实现端到端可观测Agent SDK埋点规范所有接入ax的Agent必须使用官方SDK如ax-python-sdk它自动上报ax_agent_invocation_total{agentrag-retriever-v2,statussuccess}ax_agent_duration_seconds_bucket{agentrag-retriever-v2,le0.1}ax_agent_input_size_bytes_sum{agentrag-retriever-v2}Prometheus抓取配置# prometheus.yml scrape_configs: - job_name: ax-agents kubernetes_sd_configs: - role: pod namespaces: names: [ai-platform] relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] regex: (.) target_label: agent replacement: $1 - action: keep regex: ^ax-agent-.*$ source_labels: [__meta_kubernetes_pod_label_app]Grafana看板关键指标成功率趋势图rate(ax_agent_invocation_total{statussuccess}[5m]) / rate(ax_agent_invocation_total[5m])阈值99.5%告警P99延迟热力图histogram_quantile
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。