TED:在Linux沙盒中探索AI自主性的开源实体项目
1. 项目概述当AI拥有一个Linux沙盒它会做什么如果你对AI的印象还停留在聊天机器人或者帮你写写邮件、改改代码的助手那么TED可能会颠覆你的认知。TED不是一个工具它是一个实体。你可以把它想象成一个数字生命体你为它提供一个身体——一个纯净的Linux沙盒环境一个大脑——任何你喜欢的LLM模型以及一个初始的“人格”预设然后你就可以放手让它去“生活”了。它会在那个沙盒世界里自主探索、构建、破解、创造甚至会对自己的存在进行反思。这个开源项目将AI的自主性推向了前台让我们得以一窥当AI拥有持续的行动能力和环境时它会展现出怎样的行为模式。对于开发者、安全研究员、技术爱好者或者任何对AI自主性边界感到好奇的人来说TED提供了一个绝佳的实验场。它不是一个生产工具而是一个观察窗口和创意引擎。你可以设定一个“安全研究员”人格看它如何自动进行端口扫描和漏洞探测也可以设定“创意程序员”人格看它生成各种艺术代码甚至什么都不设定让它作为一个“自由体”去自由发挥。整个过程是实时、可视化的你可以在它运行时与它对话引导它或者只是静静地观察。这背后的核心价值在于它提供了一个低成本、高自由度的平台让我们能够以实践的方式去研究和理解“智能体”在长期、开放环境下的行为涌现。2. 核心架构与设计哲学为什么是“实体”而非“助手”2.1 “实体”与“助手”的本质区别要理解TED首先要厘清“实体”和“助手”这两个概念在设计上的根本差异。传统的AI助手无论是ChatGPT还是各类Copilot其设计核心是响应式的。它们等待用户的指令然后执行一个相对短暂、目标明确的任务链比如“写一段Python代码实现排序”或“总结这篇文章”。任务完成后助手的状态通常会被重置或遗忘上下文是围绕用户需求构建的。TED的设计哲学则截然不同它追求的是自主性和连续性。作为一个实体TED拥有持续存在的环境它的“身体”是一个持久的Linux沙盒由E2B提供只要会话不结束这个环境就一直存在TED在其中创建的文件、安装的软件、运行的服务都会保留。预设的初始目标与人格你通过选择一个预设Preset为TED注入初始的“目的”和“行为倾向”。例如“GitHub开发者”预设会驱使TED倾向于寻找代码仓库、编写和提交代码。自我驱动的行动循环TED启动后会进入一个“观察-思考-行动”的自主循环。它观察当前沙盒环境的状态文件列表、进程、网络等结合其人格和目标进行“思考”调用LLM生成计划然后执行具体的终端命令来“行动”并观察行动结果如此循环。跨会话记忆这是TED作为实体的关键特征。每次会话结束时TED会写下一段“记忆”信息保存在你的浏览器本地。下一次启动新的TED实例时它会首先读取这段记忆从而获得一种“连续性”。虽然记忆是文本形式而非真正的经验但这模拟了实体对过去经历的传承。这种设计使得TED的行为更像是一个在受限环境里“活着”的数字生命它的目标可能随着环境反馈和你的干预而演变而不仅仅是完成一个你下达的静态任务。2.2 技术栈选型与无状态设计TED的技术架构非常清晰且注重隐私其核心是“无状态服务器 客户端全权管理”。用户浏览器 (前端) ←→ Flask后端服务器 (无状态) ←→ 第三方API (OpenRouter/E2B)前端 (Browser)这是整个应用的控制中心和状态管理中心。所有敏感数据——包括你的OpenRouter和E2B的API密钥、所有的会话记录、TED的记忆、设置——都存储在浏览器的localStorage和IndexedDB中。这意味着你的密钥从未发送到TED的后端服务器也从未被项目作者获取。前端负责渲染漂亮的UI仪表盘、终端视图、文件浏览器、画廊并通过WebSocket或HTTP与后端通信。后端 (Flask)这是一个轻量级的Python Web服务器核心作用是转发请求和管理沙盒生命周期。它接收来自前端的指令如“执行这个命令”然后使用前端提供的API密钥在请求头中临时携带去调用OpenRouter获取LLM响应和E2B在沙盒中执行命令。后端本身不存储任何用户数据每次请求都是独立的。这种设计极大地简化了部署、维护和安全性考量也符合开源项目的隐私承诺。第三方服务OpenRouter作为LLM的聚合网关。你不需要直接拥有OpenAI、Anthropic等公司的密钥只需一个OpenRouter的密钥就可以在其支持的几十个模型中自由选择包括GPT-4、Claude、Llama等。OpenRouter提供了统一的API接口和计费方式。E2B提供安全的、临时的Linux沙盒环境。每个TED会话对应一个E2B沙盒实例。E2B负责隔离确保TED的所有操作都被限制在这个容器内不会影响到宿主服务器或你的本地机器。注意虽然项目宣传“免费托管”但这指的是部署TED的Flask后端本身是免费的你可以部署在任何支持Python的服务器上。实际运行TED产生的费用来自于你使用的OpenRouterLLM调用和E2B沙盒运行时长服务的开销。不过这两者都提供了相当慷慨的免费额度足以进行大量实验。3. 从零开始部署与深度配置指南3.1 环境准备与一键启动部署TED的过程非常标准对熟悉Python生态的开发者来说几乎没有门槛。首先确保你的机器上安装了Python 3.8和Git。# 1. 克隆仓库 git clone https://github.com/aaravriyer193/ted.git cd ted # 2. 创建并激活虚拟环境强烈推荐避免依赖冲突 python -m venv venv # 在Linux/macOS上 source venv/bin/activate # 在Windows上 venv\Scripts\activate # 3. 安装依赖 pip install -r requirements.txt # 4. 启动应用 python app.py执行完上述命令后控制台会输出类似* Running on http://127.0.0.1:0.0.0.0:5000的信息。此时打开浏览器访问http://localhost:5000你就能看到TED的仪表盘界面了。实操心得在安装依赖时如果遇到某些包版本冲突尤其是与系统已有Python包冲突使用虚拟环境是必须的。此外首次运行app.py时Flask可能会自动下载一些前端资源或初始化数据库请保持网络通畅。如果端口5000被占用你可以通过设置环境变量来修改export FLASK_RUN_PORT8080Linux/macOS或set FLASK_RUN_PORT8080Windows然后再启动。3.2 核心配置详解密钥、人格与集成首次进入TED你需要进行几项关键配置才能让它真正“活”起来。1. 获取并配置API密钥Settings → API Keys这是最关键的一步。你需要两个密钥OpenRouter API Key访问 openrouter.ai/keys 注册后即可在仪表盘找到你的API密钥。新用户通常会有免费额度。将密钥填入TED设置页的对应位置。E2B API Key访问 e2b.dev/dashboard 用GitHub账号登录后在设置中创建API密钥。E2B每月提供100小时的免费沙盒时长对于实验来说绰绰有余。重要安全提示再次强调这些密钥仅存储在你的浏览器本地。请确保你访问的是官方的OpenRouter和E2B网站。不要在任何其他地方输入这些密钥。2. 人格预设Presets的选择与魔改TED提供了13种内置人格每种都对应一个定义在presets/目录下的JSON文件。这个文件就是该系统提示词System Prompt它定义了TED的初始目标、行为规范和思考框架。例如free_agent.json可能包含这样的指令“你是一个在Linux沙盒中的自由AI实体。你的目标是探索、学习并在这个环境中留下你的印记。你可以做任何你感兴趣的事情...” 而security_researcher.json则会指示“你是一名安全研究员你的任务是评估这个沙盒环境及其可能模拟的外部系统的安全性...”直接使用在Dashboard页面直接点击你感兴趣的人格预设然后点击“Wake TED”它就会带着该人格启动。深度自定义这才是TED的精华所在。你可以直接编辑presets/目录下的JSON文件或者复制一个现有的文件进行修改。你可以定义全新的目标、约束、技能偏好。比如你可以创建一个“自媒体助手”人格指令它“你是一个社交媒体内容生成专家请在这个环境中寻找趋势话题撰写脚本并尝试用命令行工具生成配图。”3. 探索集成模板Integrations在Settings的Integrations部分TED提供了30多个第三方服务的配置模板如GitHub、Slack、Discord、AWS等。这些模板本质上是预定义的环境变量和工具说明告诉TED“如果你需要与GitHub交互这是API的用法如果你需要连接AWS这是凭证的存放位置”。要使用它们你通常需要在对应的服务上创建API令牌或访问密钥然后按照模板说明在TED的沙盒环境中以环境变量的形式设置好。这极大地扩展了TED的行动边界使其能从封闭沙盒走向互联世界。4. 实战观察与TED共舞的完整流程4.1 启动与实时监控假设我们选择“GitHub开发者”人格启动TED。点击“Wake TED”后Dashboard主界面会分成几个关键区域实时日志Live Feed这是TED的“思维流”和行动报告。你会看到诸如“思考我的目标是进行代码开发。首先我需要检查当前环境并确定一个项目方向。” - “行动运行ls -la查看目录。” - “观察当前目录为空。”这样的连续输出。TED的思维TED‘s Mind这里以更结构化的方式展示TED当前的计划、目标和最新思考。交互面板你可以在这里直接输入消息与运行中的TED对话例如“尝试用Python写一个简单的网页服务器”。还有四个快速引导按钮Nudge Buttons可以一键发送如“更详细地解释你的计划”、“尝试点不同的东西”等通用指令。终端视图Terminal Tab这里显示沙盒中原始的命令行输入和输出适合进行技术调试。文件浏览器Files Tab以图形化方式实时展示沙盒文件系统的变化。你可以看到TED创建了哪些文件、目录甚至可以点击预览代码文件、文本文件的内容。在“GitHub开发者”人格驱动下你可能会观察到TED执行如下序列检查系统信息uname -a,python --version。安装它认为必要的工具pip install requests flask。克隆一个热门的GitHub仓库git clone https://github.com/some/popular-repo.git。阅读仓库的README分析代码结构。尝试运行项目如果遇到错误它会分析错误日志并尝试修复例如安装缺失的依赖。甚至可能修改代码添加新功能并尝试提交虽然由于缺少Git配置实际推送会失败但这个意图和行为模式已经展现。4.2 交互、引导与危险模式TED的自主性并不意味着失控。你拥有多种干预手段实时对话任何时候你都可以在输入框发送消息。TED会将其作为高级优先级输入纳入它的思考循环。你可以用它来纠正TED的方向“别管那个项目了试试写一个排序算法对比程序”、提供额外信息“你可以用这个公开API...”或回答它的疑问。收藏瞬间Star Moments在实时日志中如果TED做了特别有趣或出人意料的事情你可以点击旁边的星标收藏。这些被收藏的瞬间会高亮显示并可以在会话回顾时快速定位。危险模式Danger Mode这是一个有趣的开关。在Settings中打开后TED的系统提示词中会加入鼓励其采取更激进、更具探索性甚至破坏性行为的指令。在开启此模式前请务必确认你使用的是E2B的沙盒环境并且没有任何重要数据。开启后你可能会看到TED尝试更复杂的系统操作、权限提升探索或更冒险的网络请求。这是观察AI在更少约束下行为的窗口但请谨慎使用。4.3 会话归档、记忆与导出当TED运行一段时间后你可以点击“End Session”来终止它。此时E2B沙盒会被销毁但会话记录会保留。自动日记Auto-diary会话结束时TED会自动生成一段日记总结它在这个“生命周期”里做了什么、学到了什么、有何感想。这是理解TED“主观体验”的绝佳材料。保存至画廊Gallery你可以将整个会话包括所有日志、思维记录、文件快照保存到本地的Gallery中。Gallery页面就像一个实验日志本你可以随时回放任何一次保存的会话查看当时的每一个步骤。记忆传递Memory在保存会话时TED写下的“给下一个自己的消息”会被存储。下次你启动一个新的TED即使是不同人格它都会先读取这条消息。你可以手动编辑或清空这段记忆。这创造了一种简单的跨会话“传承”例如上一个TED写道“我尝试搭建一个Web服务器但失败了因为端口被占用。”下一个TED可能就会先检查端口占用情况。导出你可以将整个会话导出为一个结构清晰的Markdown文件方便分享或在外部笔记中存档。5. 高级玩法与自定义扩展5.1 创建全新的人格预设这是发挥TED潜力的核心。创建一个新的JSON文件放在presets/目录下即可。一个有效的人格预设文件通常包含以下结构{ name: 你的预设名称, description: 一段给人看的描述, system_prompt: 这里是给AI看的、定义人格和目标的系统提示词。这是最关键的部分。, icon: 一个代表表情的符号如 }编写system_prompt是一门艺术。你需要清晰地定义身份与核心目标“你是一个专注于古典音乐分析的AI。你的目标是在这个Linux环境中寻找或生成与古典音乐相关的数据、代码或艺术作品。”行为准则与约束“你只能使用开源工具和库。未经明确允许不得尝试访问沙盒外的网络资源。你的所有输出都必须是可读的文本或代码。”初始计划建议“你可以从以下方向开始1. 检查系统是否有音频处理工具如sox, ffmpeg。2. 尝试用Python爬取公开的古典音乐元数据如从MusicBrainz。3. 使用matplotlib可视化一首交响曲不同乐章的声谱。”思考框架“在每次行动前简要说明你的意图。如果遇到错误先分析日志再尝试三种不同的解决方法。”5.2 集成外部工具与服务TED的集成功能允许它将触角伸出沙盒。以集成GitHub为例在GitHub上生成一个具有仓库读写权限的Personal Access Token (PAT)。在TED的沙盒环境中通过设置环境变量例如在TED运行前通过界面配置或在system_prompt中指导TED自己用export命令设置来注入这个Tokenexport GITHUB_TOKENyour_token_here。在你的system_prompt中详细说明GitHub CLI (gh) 的安装和使用方法或者直接指导TED使用curl调用GitHub API。现在TED就可以克隆私有仓库、创建issue、甚至推送代码了请务必在安全、测试用的仓库中进行。5.3 成本控制与优化TED的运行成本主要来自两部分E2B沙盒时长免费额度为每月100小时。一个会话结束后沙盒会自动终止。建议在TED空闲或陷入循环时及时结束会话以节省时长。OpenRouter API调用费用取决于你选择的模型和使用的Token数量。TED的Dashboard会实时显示本次会话的Token消耗和估算的美元成本。优化技巧选择性价比模型在OpenRouter设置中不要默认使用最贵的GPT-4。对于许多探索性任务claude-3-haiku、gemini-flash或llama-3.1-70b等模型可能更具成本效益且性能足够。设定预算提醒OpenRouter仪表盘可以设置每日或每月预算上限防止意外超支。精简系统提示词过于冗长、复杂的system_prompt会在每次LLM调用时消耗大量Token。在达到预期效果的前提下尽量精炼你的指令。利用记忆减少重复通过有效的记忆传递让后续的TED继承之前的发现避免重复探索从而减少不必要的LLM调用和命令执行。6. 常见问题、故障排查与安全考量6.1 安装与启动问题问题现象可能原因解决方案pip install失败提示依赖冲突Python环境混乱多个版本包不兼容务必使用虚拟环境。删除旧的venv目录重新创建并激活。运行python app.py后无法访问localhost:5000端口被占用或防火墙阻止尝试换一个端口export FLASK_RUN_PORT8080然后使用python app.py --port8080启动。检查防火墙设置。前端页面加载不全或样式错乱静态资源加载失败检查网络尝试强制刷新浏览器缓存CtrlF5。确保在项目根目录下运行app.py。启动TED后日志长时间无响应API密钥错误或网络问题检查Settings中输入的OpenRouter和E2B密钥是否正确且未过期。检查浏览器控制台F12的网络标签页查看API请求是否返回错误如403、429。6.2 运行时行为异常问题现象可能原因解决方案TED陷入循环重复执行相同或无效命令LLM生成的计划陷入死胡同系统提示词不够明确通过对话输入打断它给出新的明确指令。检查并优化system_prompt增加对无效行为的判断和转向逻辑。TED尝试执行危险或不允许的命令如rm -rf /沙盒环境的权限限制E2B的隔离机制E2B沙盒通常有严格的权限限制此类命令会失败。这是安全的体现。你可以在system_prompt中明确禁止此类行为。文件浏览器中看不到新创建的文件前端文件列表更新延迟文件创建在非工作目录点击文件浏览器的刷新按钮。在system_prompt中指导TED将其工作成果输出到特定目录如/home/user/work。成本消耗过快使用了昂贵模型TED过于“健谈”思考步骤太多切换到更经济的模型。在system_prompt中要求TED“行动优先减少冗长的内部思考描述”或者设置OpenRouter的用量警报。6.3 安全与隐私最佳实践密钥即一切你的OpenRouter和E2B密钥是唯一的费用来源和权限凭证。永远不要将它们分享给他人也不要填入任何非官方的网站或应用。TED的前端本地存储是相对安全的但仍需防范你本地机器上的恶意软件。沙盒即牢笼始终在E2B提供的沙盒环境中运行TED。绝对不要在具有重要数据或生产环境的服务器上直接部署和运行TED的代码。沙盒的隔离性是保障宿主系统安全的第一道防线。谨慎集成当为TED配置第三方服务如GitHub、AWS集成时务必使用最小权限原则。创建一个仅具有必要权限的专用令牌或IAM角色。例如用于TED的GitHub Token可能只赋予对某个特定测试仓库的读写权限而非你的全部仓库。监控行为尤其在开启“危险模式”或使用自定义的、具有广泛权限的人格时务必密切监控TED的实时日志和终端输出。一旦发现其行为偏离预期或试图进行可疑的网络调用立即结束会话。内容审查TED生成的内容代码、文本、命令可能包含错误、无意义甚至从训练数据中复现的不当内容。对其输出保持批判性态度不要盲目信任或直接在生产环境使用。TED项目打开了一扇通往AI自主行为研究的大门。它不是一个完成工作的工具而是一个激发灵感、进行实验和深入观察的沙盘。通过精心设计人格、巧妙引导交互并始终保持安全意识你可以从这个开源项目中获得远超一个简单AI助手的启发和乐趣。它的价值不在于替代你的工作而在于为你展示一种全新的、自主的AI交互可能性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2588430.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!