---
canonical: https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/
language: zh
generated: 2026-10-21T13:34:54.966Z
---

[首页](https://koalavps.com/zh/) / [探索](https://koalavps.com/zh/resources/) /  KoalaVPS 现场笔记

KoalaVPS 现场笔记

# 让代理成为一项服务，而不是被遗忘的终端。

以明确状态、受限权限和恢复计划运行长期工作进程。

[找到你的 VPS](https://koalavps.com/zh/vps/)

## 本文档内容

[打包工作进程](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-1)[在操作变得重要之前保存进度](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-2)[添加有用的可观测性](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-3)[设定明确上限](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-4)[使用监督程序和审慎的计划](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-5)[设置每日预算和重复边界](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-6)[为周期性任务设置明确的追赶策略](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-7)[区分崩溃循环与停滞的工作进程](https://koalavps.com/zh/guides-run-ai-agent-24-7-on-a-vps/#section-8)[知识库](https://koalavps.com/zh/resources/)

## 打包工作进程

使用受支持的运行时、固定依赖项以及服务管理器或容器。配置重启限制和专用服务用户。将私有服务商凭据保存在应用公开文件之外的受保护配置中。

## 在操作变得重要之前保存进度

为任务使用持久队列或数据库。分配唯一操作标识符，记录外部请求并核对不确定结果。重启不应发送第二封邮件、创建第二个订单或重复扣费。

## 添加有用的可观测性

监控任务完成情况、队列时长、错误率和成本，而不是只检查进程是否存在。保持日志足够小以便审查，并遮盖无需保留的令牌、提示和文档。

## 设定明确上限

限制模型支出、浏览器并发数、运行时间和重试次数。保留易于使用的暂停开关和针对重大操作的人工审查路径。一个更小、观测良好的工作进程比不受限制的进程更容易被信任。

## 使用监督程序和审慎的计划

Systemd 和 Docker 是让进程在终端断开后继续运行的常见方式。对于 systemd 服务，Type=exec 比简单的后台启动更直接地报告执行失败，Restart=on-failure 可按有界策略重启失败。计划任务应避免重叠运行。明确设置工作目录、服务用户和环境。 该示例假设 koala-agent 用户、虚拟环境、worker 模块和私有环境文件已存在；在安装单元之前请先调整它们。

- 使用专用服务账户

- 设置重启延迟和失败上限

- 在启动计划运行前检查上一次作业状态

```
[Unit]
Description=Example agent worker
After=network-online.target

[Service]
Type=exec
User=koala-agent
WorkingDirectory=/opt/koala-agent
EnvironmentFile=/etc/koala-agent.env
ExecStart=/opt/koala-agent/.venv/bin/python -m worker
Restart=on-failure
RestartSec=10
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
```

官方文档：[Systemd 服务语义](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html)

## 设置每日预算和重复边界

为工作进程设置最大请求数、支出上限和执行超时。对影响外部世界的操作使用持久化的幂等记录。浏览器点击成功可能发生在进程收到响应之前；重试前请检查外部状态。Docker Compose 密钥挂载可以让密钥不进入镜像，但权限和消费方应用仍需审查。

官方文档：[Docker Compose 密钥](https://docs.docker.com/compose/how-tos/use-secrets/)

## 为周期性任务设置明确的追赶策略

对持久队列工作进程使用长期运行的服务，对有界计划任务使用由定时器触发的一次性服务。使用 systemd 日历定时器时，Persistent=true 可以在停机后触发一次错过的激活；它不会重建整个业务积压。决定这种追赶是否可取。RandomizedDelaySec 可以分散启动时间，而应用层租约可防止两个副本处理同一计划工作。

- 记录预期时区，并在启用计划前检查下次运行时间。

- 让任务的执行截止时间短于不得重叠的间隔，或使用带过期和所有权的持久租约。

- 让任务从已存储状态中选择未完成的工作，而不是假定之前的每个定时器事件都已运行。

- 在使用最新手册中的指令前，请检查已安装的systemd版本。

```
# Read-only checks after creating your own matching units.
systemctl list-timers --all
systemctl status koala-agent.service
journalctl -u koala-agent.service --since today --no-pager
```

官方文档：[systemd：定时器调度](https://www.freedesktop.org/software/systemd/man/latest/systemd.timer.html)

## 区分崩溃循环与停滞的工作进程

重启策略可以恢复失败的进程，但每隔几秒重复无效凭据或损坏的迁移会让故障更嘈杂。限制服务启动次数并对重复失败发出告警。运行中的进程也可能卡住：测量最旧任务的时长和最后完成操作的时长。用一次性任务测试 API 中断、磁盘已满和进程停止，然后验证持久状态能防止重复的外部操作。

- 在应用程序中设置提供商预算和请求超时，并在运行时上设置 CPU/内存边界。

- Docker容器并不会仅因为是容器就拥有有用的工作负载专用内存限制；请有意配置并测试限制。

- 将密钥存储在镜像和公共目录树之外，然后测试崩溃日志和诊断信息是否会将其隐去。

- 保留手动停止途径，并要求对支出、生产写入或外部消息进行适当审查。

官方文档：[systemd：服务监管](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html) · [Docker：容器资源约束](https://docs.docker.com/engine/containers/resource_constraints/)

继续探索

## 继续阅读。

[产品 ### 为你的代理提供可靠栖息地。 在您掌控的基础设施上运行调度器、浏览器工作进程、队列和自动化流程。让每个代理都处于明确的权限边界内。…](https://koalavps.com/zh/agentic-vps/)[指南 ### 带有明确停止按钮的自动化。 良好的自动化系统具有明确的任务、可见的状态和对不确定性的可预测响应。…](https://koalavps.com/zh/automation-safety/)[产品 ### 保留智能，掌控运行时。 托管围绕您 AI 工作流的各项服务：检索、文档处理、工具执行、Webhook 和可观测性。构建一个在出现故障时仍能被理解的系统。…](https://koalavps.com/zh/ai-agent-hosting/)

配置您的基础设施

## 掌控一切。 按你的条件部署。

无需身份文件。完整管理员权限。原生加密货币计费。

[选择配置](https://koalavps.com/zh/vps/)
