文章摘要
作者成功构建了一个近乎完全自托管的沙盒化智能体软件工厂,仅凭一条指令便自主完成了从创建仓库、编写代码测试、通过CI、配置PostgreSQL到部署HTTPS应用的完整开发流程,解决了LLM自动模式下权限安全顾虑。
文章总结
好的,这是根据您的要求,对原文主要内容进行的中文重述,保留了关键细节,并删减了与核心主题无关的冗余内容。
标题:搭建一个(几乎)完全自托管、沙盒化、自主运行的软件工厂
核心结论: 实验成功了!只需一个指令,AI代理就自主完成了从创建代码仓库、编写应用和测试、通过CI流水线、配置数据库到最终将应用部署到HTTPS域名下的全过程,全程无需人工干预。
背景与动机: 作者想创建一个完全远程的、结构上受控的AI开发环境,而不是盲目信任AI。目标是让AI能自主完成整个软件开发生命周期:研究技术栈、编写代码和测试、提交代码并运行CI、部署到生产服务器(含数据库、域名和SSL)。所有操作都在作者的家庭服务器上完成,无需额外云服务费用,唯一持续成本是每月20英镑的Codex订阅。
硬件与网络隔离:
- 硬件隔离: 使用一台专用的、全新的二手服务器(2021年款i7,32GB内存),与运行其他重要服务的旧服务器物理分离。这样即使AI出错,也只会影响这台新机器。
- 网络隔离: 新服务器没有对外开放端口,完全通过Tailscale组建的虚拟网络(tailnet)访问。通过Pi-hole的DNS规则,将*.internal.jakeshomelab.me域名解析到新服务器。
- SSL证书: 利用DNS-01挑战(通过Porkbun API)为这些内部域名生成有效的Let's Encrypt SSL证书,无需公开服务的A记录,确保服务仅能在tailnet内访问。
核心技术栈: - Coolify: 自托管的PaaS平台,作为核心编排工具,管理应用部署、反向代理和SSL。 - Forgejo: 自托管的Git仓库和CI/CD系统。 - Hermes: 一个具备自主能力的AI助手,使用Codex进行推理,提供Web界面和Telegram集成。 - Firecrawl: 自托管的网络爬虫,为AI提供网页搜索和抓取能力。 - 其他: Tailscale(网络)、Pi-hole(DNS)、Porkbun(域名注册商)、Let's Encrypt(SSL)。
工作流程演示:
作者向Hermes发送了一个指令:“请为我构建一个卡路里追踪应用,类似MyFitnessPal,使用SvelteKit、Drizzle、Postgres和Tailwind,部署到calories.internal.jakeshomelab.me。”
AI随后自主完成了以下所有步骤: 1. 创建新的Git仓库,并初始化SvelteKit、Drizzle、Postgres和Tailwind。 2. 编写应用代码和测试,并分阶段提交。 3. 创建CI流水线。 4. 修复测试失败,直到CI全部通过。 5. 使用Docker Compose将应用和Postgres容器化。 6. 将整个应用部署到Coolify的指定URL。
整个过程无需任何额外提示。在发现一个CSRF问题后,作者发送了一条提示,AI自主诊断、修复并添加了回归测试,然后重新部署。
关于隔离性的思考与下一步: - 当前风险: 尽管有隔离,AI仍然有能力破坏新服务器、删除数据、泄露凭证、消耗大量API额度或进行出站网络请求。 - 改进方向: - 将新服务器置于独立的VLAN,并明确阻止其访问家庭网络的其他部分。 - 为每个凭证设置最小权限并定期轮换。 - 自动化备份,使重建整个服务器成为一键操作。 - 对可能造成重大影响的操作设置审批流程。 - 核心权衡: 过多的审批门控会削弱AI的自主性。如何找到“需要频繁干预”和“拥有过高权限”之间的平衡点,是下一步实验的目标。
评论总结
根据评论内容,总结如下:
主要观点与论据:
对“软件工厂”模式的质疑(评分:无,但多位评论者持此观点)
- 评论7(copemaxxxing)指出,AI能解决90%的代码,但最后10%的关键bug往往需要人类理解整个系统才能修复。引用:"The problem for software factory is... you can't ship it because while the AI deals with the 90%, turns out that last remaining 10% are the one that make or break your project."
- 评论9(ashu1461)强调验证困难:"producing code is the easy part, verification is hard. Verification via test cases just feels like the same agent validating its own assumptions."
对AI生成代码质量的担忧(评分:无)
- 评论3(100percentjake)分享个人经验,认为AI项目仅适合个人使用,不适合交付客户:"Every project I've ever had an LLM do a majority of the work for me has been strictly for my personal use; I'd never let anyone else use this stuff because it doesn't pass the vibe check."
- 评论7(copemaxxxing)举例说明,即使是Claude Opus也无法解决某些前端和嵌入式bug,最终需要人类手动修复。
对行业“网红”的批评(评分:无)
- 评论7(copemaxxxing)批评Kent Dodds等倡导“远离代码”的软件工厂理念,认为他们已脱离实际开发:"They are already rich... their time in this industry has passed. They are not in the weeds doing enterprise software development anymore."
对基础设施和安全的关注(评分:无)
- 评论11(complexfirrea)直接跳到教程结尾,关注安全与隔离:"I skipped straight to the end to find exactly what I expected the tutorial would cover: security and isolation."
对工具选择的讨论(评分:无)
- 评论2(mempko)比较Hermes与OpenClaw在多智能体系统方面的优劣。
- 评论6(ramon156)询问Hermes与OpenCode在大型任务上的表现差异。
平衡性总结: - 正面观点:评论3(100percentjake)分享了使用Hermes的成功案例,包括家庭自动化、个人工具开发等。 - 负面/质疑观点:评论7(copemaxxxing)和评论9(ashu1461)对软件工厂模式的可行性和代码质量提出尖锐批评。 - 中立/探索观点:评论2(mempko)和评论6(ramon156)在比较不同工具,寻求最佳实践。