
在 2026 年的今天,微服务早已不是新鲜事,但“智能体(Agent)”正在重新定义服务的边界。我们不再仅仅编写被动的 REST API,而是构建能够主动感知、自主决策的数字员工。
本文将带您跨越理论鸿沟,实战构建一个名为 “Phx(凤凰)” 的 DevOps 智能助手系统。我们将采用 多 Agent 协作模式,借助 React 19 的新特性构建前端交互,利用 Elysia(最快的 Bun 原生框架)打造高性能后端,并最终通过一套完整的 DevOps 流水线将其部署至云端。
在传统单体 AI 应用中,一个 LLM 承担所有任务,容易导致“幻觉”和上下文过载。在本次实战中,我们采用 “主管-执行者”模式:
通信机制:Agent 间不直接调用,而是通过 消息队列(Redis Streams) 进行异步解耦。
为什么选择 Elysia?因为它不仅拥有比 Express 快 10 倍的性能,其 Eden Treaty 特性能实现前后端类型安全,这对 Agent 间的契约至关重要。
bun create elysia phx-backend
cd phx-backend
bun add @elysia/eden @redis/client openai zod我们利用 Elysia 的 t 模块进行运行时校验。
// src/agents/supervisor.ts
import Elysia, { t } from 'elysia';
import { OpenAI } from 'openai';
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
export const supervisorAgent = new Elysia()
.post('/supervise', async ({ body }) => {
const { userInput } = body;
// 1. 调用 LLM 进行意图分类 (Function Calling)
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: userInput }],
tools: [{
type: "function",
function: {
name: "route_agent",
description: "路由到对应的专业Agent",
parameters: {
type: "object",
properties: {
target: {
type: "string",
enum: ["LogAnalyzer", "AlertJudge", "AutoHealer"]
}
}
}
}
}]
});
// 2. 解析并返回路由指令
const toolCall = response.choices[0].message.tool_calls[0];
return {
agent: toolCall.function.arguments.target,
instruction: userInput
};
}, {
body: t.Object({ userInput: t.String() })
});如果说 React 18 带来了并发,React 19 则带来了自动编译优化和 Actions。我们不再需要手动管理 useCallback 和 useMemo,编译器会帮我们做 memoization。
React 19 的 useActionState 和 useFormStatus 让表单处理前所未有的简单。
// src/components/ChatInterface.tsx
import { useActionState, useOptimistic, startTransition } from 'react';
// 模拟调用后端 Elysia 服务 (使用 Eden Treaty)
import { eden } from '../api/client';
function ChatInterface() {
const [messages, setMessages] = useState([]);
// React 19 Action: 异步提交
const submitMessage = async (prevState: any, formData: FormData) => {
const input = formData.get('input') as string;
// 乐观更新 UI (Optimistic Update)
setMessages(prev => [...prev, { role: 'user', content: input }]);
// 调用 Elysia 后端的 Agent 路由
const { data } = await eden.supervise.post({ userInput: input });
// 根据路由结果,进一步请求特定 Agent (这里简化逻辑)
const result = await eden.agents[data.agent].post({ instruction: data.instruction });
setMessages(prev => [...prev, { role: 'assistant', content: result.analysis }]);
return { success: true };
};
const [state, formAction] = useActionState(submitMessage, { success: false });
return (
<form action={formAction}>
<input name="input" placeholder="输入您的运维指令..." />
<button type="submit">发送</button>
</form>
);
}亮点:React 19 的 useActionState 自动处理了 pending 状态和表单重置,无需繁琐的 isLoading 控制。
这是体现“AI+DevOps”价值的关键环节。我们将建立一套流水线,让 AI Agent 参与部署决策。
编写一个极简的 Dockerfile 利用 Bun 的超快启动速度:
FROM oven/bun:1.0 AS base
WORKDIR /app
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile
COPY . .
EXPOSE 3000
CMD ["bun", "run", "src/index.ts"]我们在流水线中加入了一个 “质量门禁 Agent”,它会自动分析代码变更并给出风险评估。
# .github/workflows/deploy.yaml
name: AI DevOps Pipeline
on:
push:
branches: [ main ]
jobs:
ai-code-review:
runs-on: ubuntu-latest
steps:
- name: 调用内部 Agent 进行代码审查
run: |
curl -X POST https://ai-api.internal/review \
-H "Authorization: Bearer ${{ secrets.AI_TOKEN }}" \
-d '{"commit": "${{ github.sha }}"}' \
--output review_report.json
- name: 如果风险等级 > 8,阻断流水线
run: |
risk=$(jq '.risk_score' review_report.json)
if [ $risk -gt 8 ]; then exit 1; fi
deploy-canary:
needs: ai-code-review
runs-on: ubuntu-latest
steps:
- name: Deploy to K8s Canary
run: kubectl set image deployment/phx-server phx-server=${{ github.sha }} -n canary
- name: 等待 2 分钟,让 Agent 观察监控
run: sleep 120
- name: 询问 AutoHealer Agent 是否继续全量发布
run: |
DECISION=$(curl -s -X POST https://api.phx/agent/decision)
if [ "$DECISION" != "GO" ]; then exit 1; fi我们使用 Prometheus + Grafana + Tempo 追踪每个 Agent 的调用链。Elysia 原生支持 OpenTelemetry,我们只需简单配置即可将 Agent 的“思考过程”上报:
// 在 Elysia 中集成 OpenTelemetry
import { otel } from '@elysiajs/otel';
app.use(otel({
serviceName: 'phx-supervisor',
attributes: { version: '1.0.0' }
}));kubectl scale deployment --replicas=5。通过本次实战,我们验证了“多 Agent + React 19 + Elysia”这一技术组合的巨大潜力:
最后,请记住:AI 不会取代运维工程师,但使用 AI 的运维工程师会取代不用 AI 的。 现在,就去构建您的“凤凰”吧!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。