让智能体在 Docker 沙箱中扩展其自身代码

作者构建了 Miguel,一个基于 Claude 和 Agno 框架的 AI 智能体,能够在 Docker 沙箱中自主读取、修改和扩展其自身的源代码。初始赋予了 10 项基础能力(如回答问题、读取自身代码、创建工具、处理错误等)。任务:建议工作流:使用 Claude 和 Agno 在 Docker 沙箱中实现自我改进的智能体循环。1. 定义种子能力(如读取代码、创建工具)。2. 隔离执行:主机负责验证和 Git 操作;智能体在 Docker 中运行,项目以只读方式挂载,仅允许写入其代码目录。3. 改进循环:运行器获取 Git 快照,将源代码和下一个能力发送给智能体。智能体修改文件。运行器通过 AST/JSON/导入检查进行验证。通过则提交;失败则回滚。4. 强制约束:在运行器中注入不可变的“十诫”(如限制工具数量以节省上下文)。5. 监控上下文使用情况以防止耗尽。;工具:Claude。人工角色:原始帖子未说明人类如何保持参与。;局限:运行该智能体会产生 API 成本,每个改进批次花费几欧元。主要技术约束是管理智能体的认知预算以防止上下文耗尽。系统依赖严格的沙箱和验证检查来防止有害代码执行,但智能体的自主决策仍不可预测。。

工具

Claude

Agent Work Atlas 发布日期:

概述

作者构建了 Miguel,一个基于 Claude 和 Agno 框架的 AI 智能体,能够在 Docker 沙箱中自主读取、修改和扩展其自身的源代码。初始赋予了 10 项基础能力(如回答问题、读取自身代码、创建工具、处理错误等)。

工作流程

建议工作流:使用 Claude 和 Agno 在 Docker 沙箱中实现自我改进的智能体循环。1. 定义种子能力(如读取代码、创建工具)。2. 隔离执行:主机负责验证和 Git 操作;智能体在 Docker 中运行,项目以只读方式挂载,仅允许写入其代码目录。3. 改进循环:运行器获取 Git 快照,将源代码和下一个能力发送给智能体。智能体修改文件。运行器通过 AST/JSON/导入检查进行验证。通过则提交;失败则回滚。4. 强制约束:在运行器中注入不可变的“十诫”(如限制工具数量以节省上下文)。5. 监控上下文使用情况以防止耗尽。

原文报告的结果

该智能体成功实现了 21 项以上能力,包括网络搜索和子智能体委托。在被指示减少工具数量后,它将代码库减少了 10%,系统提示词减少了 63%。然而,作者指出智能体仍会做出可疑决策并面临上下文耗尽问题,表明系统处于早期阶段且不完全可靠。

人工角色

原始帖子未说明人类如何保持参与。

局限

运行该智能体会产生 API 成本,每个改进批次花费几欧元。主要技术约束是管理智能体的认知预算以防止上下文耗尽。系统依赖严格的沙箱和验证检查来防止有害代码执行,但智能体的自主决策仍不可预测。

试一试

我想使用 Claude 和 Agno 框架构建一个自我改进的 AI 智能体原型,并在 Docker 中进行沙箱隔离。我的目标是让智能体修改其自身代码以添加新功能,同时保持稳定性。 输入: - 初始代码库:[可替换输入:本地 Git 仓库路径] - 种子能力:[可替换输入:5 个基本功能列表,如 'read_file', 'write_file'] - 验证规则:[可替换输入:AST 检查,JSON 模式验证] 步骤: 1. 设置一个 Docker 容器,将代码以只读方式挂载,仅允许写入特定的 'agent_code' 目录。 2. 创建一个主机端运行器脚本,该脚本获取 Git 快照,将当前代码和下一个能力请求发送给智能体,并等待更改。 3. 在运行器中实现验证逻辑:检查语法、导入和模式。如果有效,则提交;如果无效,则回滚。 4. 注入系统提示词约束:“减少工具数量以节省上下文令牌。” 5. 运行一个简单的能力(例如“添加错误处理”)的样本改进循环。 交付物: - 一个包含运行器脚本的工作 Docker 设置。 - 一个显示一次成功提交和一次回滚示例的 Git 日志。 - 关于令牌使用和验证结果的报告。 质量检查: - 确保智能体无法修改运行器或主机文件。 - 验证当生成无效代码时回滚机制是否正常工作。 - 确认智能体遵守工具数量约束。 人类确认: - 在第一次样本运行后,未经我批准,不要推送到远程仓库或花费大量 API 额度。

原始来源

来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。

更多同类案例 · 编程与开发