跳到主要内容

3.15.3 自动化场景示例

本节给出三个典型的自动化场景,展示 CLI 在 CI、定时任务、日志分析中的用法。每个示例可以直接复制到生产环境使用。

CI 中跑代码审查

在 GitHub Actions 工作流中使用 @dmoss/agent 审查 PR 差异:

# .github/workflows/review.yml
name: AI Code Review

on:
pull_request:
branches: [main]

jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-node@v4
with:
node-version: '22'

- name: Install @dmoss/agent
run: npm install -g @dmoss/agent

- name: Review diff
env:
DMOSS_API_KEY: ${{ secrets.DMOSS_API_KEY }}
DMOSS_MODEL: claude-sonnet-4-20250514
DMOSS_BASE_URL: https://api.anthropic.com
run: |
git diff origin/main HEAD | dmoss-agent --pipe \
"review the diff, focus on bugs and missing tests"

Agent 会分析 diff、指出潜在 bug、建议补充测试。输出在 Action 日志中可见。

定时巡检板端

rdkstudio 在 crontab 中定时检查生产板端的健康状况:

# /etc/cron.d/rdk-checkin
0 * * * * rdkstudio exec "df -h /; free -h; uptime" --device prod-x5-01 \
| tee -a /var/log/rdk-checkin.log

每小时执行一次,把磁盘、内存、运行时间信息追加到日志。定期检查日志即可发现异常趋势。

更进一步,用 @dmoss/agent 让 AI 自动分析巡检结果:

# 每天午夜触发一次完整诊断
0 0 * * * bash /opt/rdk/daily-health.sh
#!/bin/bash
# /opt/rdk/daily-health.sh
set -e

DIAGNOSIS=$(rdkstudio exec "cat /proc/meminfo; df -h; dmesg | tail -100" --device prod-x5-01)

echo "$DIAGNOSIS" | dmoss-agent --pipe \
"分析以下板端状态输出,给出健康评分和建议" \
> /var/log/rdk-daily-report.log

AI 自动总结日志

把 systemd 日志交给 AI 总结异常:

# 手动或定时执行
journalctl -u myservice --since="1 hour ago" \
| dmoss-agent --pipe "summarize errors and root causes"

Agent 会读取日志、提取错误事件、按时间和严重程度归类、给出可能的根因。适合大量日志中快速定位问题的场景。

扩展:让 AI 在发现严重问题时主动通知:

LOG=$(journalctl -u myservice --since="5m ago" --no-pager)

RESULT=$(echo "$LOG" | dmoss-agent --pipe --json \
"分析日志是否有严重错误。返回 JSON: {severity: none|low|medium|high, summary: '...'}")

SEVERITY=$(echo "$RESULT" | jq -r '.severity')

if [ "$SEVERITY" = "high" ]; then
# 调用告警通道
curl -X POST https://your-alert-endpoint \
-d "$(echo "$RESULT" | jq -r '.summary')"
fi

在 Docker 镜像中部署

@dmoss/agent 打包进 Docker 镜像,用于容器化的 Agent 服务:

FROM node:22-alpine

RUN npm install -g @dmoss/agent

ENV DMOSS_WORKSPACE=/app
WORKDIR /app

ENTRYPOINT ["dmoss-agent"]

构建与运行:

docker build -t my-dmoss-agent .

docker run -it --rm \
-e DMOSS_API_KEY=sk-xxxx \
-e DMOSS_MODEL=qwen3.6-plus \
my-dmoss-agent "帮我分析当前工作目录的结构"

这种方式适合在 Kubernetes 中部署短生命周期的 Agent 任务、或在 CI / CD 中提供一致的 Agent 运行环境。