公司有 Grafana、有 ELK,大部分问题看几眼监控就能定位。但总有一些场景,监控帮不了你——你得 kubectl exec 进容器,结合日志和运行时代码一起看,甚至那个服务你压根不熟、连源码都没有。
排查时真正痛苦的不是「没有工具」,而是「不记得该跑什么命令」「跑了也不一定看得懂」「来回切窗口手忙脚乱」。
于是我写了 Poor Man's DevOps Agent:把一个 80KB 的 agent.py 扔进容器,配上任意 OpenAI 兼容的 LLM 地址,就能用自然语言对话式排查问题。
花小钱办大事。没预算买 DataDog?扔上去一个脚本照样能 Debug。
它怎么工作
你描述现象,它像运维工程师一样先形成假设,再用最小的只读命令逐个验证,命中就深挖、没命中就换假设:
你:帮我看看这个容器为什么 CPU 这么高Agent:先形成假设——① GC 停顿 ② IO 瓶颈 验证①:top CPU 89%、内存 45%,假设①命中,继续深挖 docker exec py-spy dump --pid 1 抓到线程停在 gc.collect,根因是内存泄漏触发频繁 GC 建议查看 app.py 的对象缓存逻辑,已把该服务 OOM 阈值写入记忆
为什么值得一看
- 单文件、零依赖:scp agent.py 进容器,标准库就能跑,Python 2.7 和 3.x 都兼容。不装 node、不装 CLI、不引一堆依赖。
- 不绑厂商:任何 OpenAI 兼容 API 都能用——DeepSeek、通义千问、智谱 GLM、Kimi、豆包、讯飞星火,或者本地部署的 Ollama、vLLM。公司内网的私有模型也行。
- 三层安全防护:这是敢把它带进生产的关键——rm -rf /、mkfs、dd of=/dev/ 这类危险命令直接硬拦截;只有白名单内的命令能执行;cat/grep/ps 这类只读命令免确认直接放行,其余需人工确认。LLM 不会因为幻觉把你的生产环境删了。
- 借鉴 Claude Code 的核心思路:流式输出(边生成边显示)、LLM 摘要式上下文压缩(长对话不丢语义)、TodoWrite 任务追踪、工作区持久化记忆(排查结论跨会话累积)、斜杠命令。
它和 Claude Code 的区别
不是要复刻 Claude Code。Claude Code 是日常开发的主力工具,大而全;这个项目是应急时塞进容器的那一个脚本,只做「只读排查」这一件事,做到极致轻。借鉴它的思考方式,但用完就删,避免 API Key 泄露。
说点实在的局限(不忽悠)
它不是生产级常驻服务,是临时排查工具;LLM 给的分析只是参考,不保证 100% 正确,关键决策还得你自己判断;涉及写操作的命令务必人工确认后再执行。它解决的是「非运维背景的同学临时需要进容器排查」这个场景,不是要替代 DataDog 或专业监控。
怎么用
curl -fsSL https://raw.githubusercontent.com/vector4wang/poor-mans-devops-agent/main/agent.py -o agent.pyexport DEBUGBOT_API_URL="https://your-llm/v1/chat/completions"export DEBUGBOT_API_KEY="sk-xxxxx"export DEBUGBOT_MODEL="deepseek-chat"python agent.py
GitHub:https://github.com/vector4wang/poor-mans-devops-agent
如果对你有帮助,欢迎 Star,也欢迎提 Issue 和 PR 一起完善。