news 2026/5/6 14:00:03

TED:在Linux沙盒中探索AI自主性的开源实体项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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拥有:

  1. 持续存在的环境:它的“身体”是一个持久的Linux沙盒(由E2B提供),只要会话不结束,这个环境就一直存在,TED在其中创建的文件、安装的软件、运行的服务都会保留。
  2. 预设的初始目标与人格:你通过选择一个预设(Preset)为TED注入初始的“目的”和“行为倾向”。例如,“GitHub开发者”预设会驱使TED倾向于寻找代码仓库、编写和提交代码。
  3. 自我驱动的行动循环:TED启动后,会进入一个“观察-思考-行动”的自主循环。它观察当前沙盒环境的状态(文件列表、进程、网络等),结合其人格和目标进行“思考”(调用LLM生成计划),然后执行具体的终端命令来“行动”,并观察行动结果,如此循环。
  4. 跨会话记忆:这是TED作为实体的关键特征。每次会话结束时,TED会写下一段“记忆”信息,保存在你的浏览器本地。下一次启动新的TED实例时,它会首先读取这段记忆,从而获得一种“连续性”。虽然记忆是文本形式而非真正的经验,但这模拟了实体对过去经历的传承。

这种设计使得TED的行为更像是一个在受限环境里“活着”的数字生命,它的目标可能随着环境反馈和你的干预而演变,而不仅仅是完成一个你下达的静态任务。

2.2 技术栈选型与无状态设计

TED的技术架构非常清晰且注重隐私,其核心是“无状态服务器 + 客户端全权管理”。

用户浏览器 (前端) ←→ Flask后端服务器 (无状态) ←→ 第三方API (OpenRouter/E2B)
  • 前端 (Browser):这是整个应用的控制中心和状态管理中心。所有敏感数据——包括你的OpenRouter和E2B的API密钥、所有的会话记录、TED的记忆、设置——都存储在浏览器的localStorageIndexedDB中。这意味着你的密钥从未发送到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产生的费用,来自于你使用的OpenRouter(LLM调用)和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_PORT=8080(Linux/macOS)或set FLASK_RUN_PORT=8080(Windows),然后再启动。

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执行如下序列:

  1. 检查系统信息(uname -a,python --version)。
  2. 安装它认为必要的工具(pip install requests flask)。
  3. 克隆一个热门的GitHub仓库(git clone https://github.com/some/popular-repo.git)。
  4. 阅读仓库的README,分析代码结构。
  5. 尝试运行项目,如果遇到错误,它会分析错误日志并尝试修复(例如安装缺失的依赖)。
  6. 甚至可能修改代码,添加新功能,并尝试提交(虽然由于缺少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是一门艺术。你需要清晰地定义:

  1. 身份与核心目标:“你是一个专注于古典音乐分析的AI。你的目标是在这个Linux环境中,寻找或生成与古典音乐相关的数据、代码或艺术作品。”
  2. 行为准则与约束:“你只能使用开源工具和库。未经明确允许,不得尝试访问沙盒外的网络资源。你的所有输出都必须是可读的文本或代码。”
  3. 初始计划建议:“你可以从以下方向开始:1. 检查系统是否有音频处理工具(如sox, ffmpeg)。2. 尝试用Python爬取公开的古典音乐元数据(如从MusicBrainz)。3. 使用matplotlib可视化一首交响曲不同乐章的声谱。”
  4. 思考框架:“在每次行动前,简要说明你的意图。如果遇到错误,先分析日志,再尝试三种不同的解决方法。”

5.2 集成外部工具与服务

TED的集成功能允许它将触角伸出沙盒。以集成GitHub为例:

  1. 在GitHub上生成一个具有仓库读写权限的Personal Access Token (PAT)。
  2. 在TED的沙盒环境中,通过设置环境变量(例如在TED运行前通过界面配置,或在system_prompt中指导TED自己用export命令设置)来注入这个Token:export GITHUB_TOKEN=your_token_here
  3. 在你的system_prompt中详细说明GitHub CLI (gh) 的安装和使用方法,或者直接指导TED使用curl调用GitHub API。
  4. 现在,TED就可以克隆私有仓库、创建issue、甚至推送代码了(请务必在安全、测试用的仓库中进行)。

5.3 成本控制与优化

TED的运行成本主要来自两部分:

  1. E2B沙盒时长:免费额度为每月100小时。一个会话结束后,沙盒会自动终止。建议在TED空闲或陷入循环时及时结束会话以节省时长。
  2. OpenRouter API调用:费用取决于你选择的模型和使用的Token数量。TED的Dashboard会实时显示本次会话的Token消耗和估算的美元成本。

优化技巧

  • 选择性价比模型:在OpenRouter设置中,不要默认使用最贵的GPT-4。对于许多探索性任务,claude-3-haikugemini-flashllama-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_PORT=8080,然后使用python app.py --port=8080启动。检查防火墙设置。
前端页面加载不全或样式错乱静态资源加载失败检查网络,尝试强制刷新浏览器缓存(Ctrl+F5)。确保在项目根目录下运行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 安全与隐私最佳实践

  1. 密钥即一切:你的OpenRouter和E2B密钥是唯一的费用来源和权限凭证。永远不要将它们分享给他人,也不要填入任何非官方的网站或应用。TED的前端本地存储是相对安全的,但仍需防范你本地机器上的恶意软件。
  2. 沙盒即牢笼:始终在E2B提供的沙盒环境中运行TED。绝对不要在具有重要数据或生产环境的服务器上直接部署和运行TED的代码。沙盒的隔离性是保障宿主系统安全的第一道防线。
  3. 谨慎集成:当为TED配置第三方服务(如GitHub、AWS)集成时,务必使用最小权限原则。创建一个仅具有必要权限的专用令牌或IAM角色。例如,用于TED的GitHub Token可能只赋予对某个特定测试仓库的读写权限,而非你的全部仓库。
  4. 监控行为:尤其在开启“危险模式”或使用自定义的、具有广泛权限的人格时,务必密切监控TED的实时日志和终端输出。一旦发现其行为偏离预期或试图进行可疑的网络调用,立即结束会话。
  5. 内容审查:TED生成的内容(代码、文本、命令)可能包含错误、无意义甚至从训练数据中复现的不当内容。对其输出保持批判性态度,不要盲目信任或直接在生产环境使用。

TED项目打开了一扇通往AI自主行为研究的大门。它不是一个完成工作的工具,而是一个激发灵感、进行实验和深入观察的沙盘。通过精心设计人格、巧妙引导交互,并始终保持安全意识,你可以从这个开源项目中获得远超一个简单AI助手的启发和乐趣。它的价值不在于替代你的工作,而在于为你展示一种全新的、自主的AI交互可能性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 13:52:32

植物大战僵尸终极修改指南:5分钟掌握PVZTools高效游戏辅助

植物大战僵尸终极修改指南:5分钟掌握PVZTools高效游戏辅助 【免费下载链接】pvztools 植物大战僵尸原版 1.0.0.1051 修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztools 还在为《植物大战僵尸》的难关卡而烦恼吗?想要轻松体验游戏的全…

作者头像 李华
网站建设 2026/5/6 13:52:07

终极QQ音乐解密指南:用qmc-decoder免费解锁加密音频文件

终极QQ音乐解密指南:用qmc-decoder免费解锁加密音频文件 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾为QQ音乐的加密文件无法在其他设备播放而烦恼&…

作者头像 李华
网站建设 2026/5/6 13:50:49

完美信息蒸馏:革命性技术如何让斗地主AI达到人类顶级水平

完美信息蒸馏:革命性技术如何让斗地主AI达到人类顶级水平 【免费下载链接】PerfectDou [NeurIPS 2022] PerfectDou: Dominating DouDizhu with Perfect Information Distillation 项目地址: https://gitcode.com/gh_mirrors/pe/PerfectDou 在NeurIPS 2022大…

作者头像 李华
网站建设 2026/5/6 13:50:11

Switch终极音乐播放器TriPlayer:简单三步实现游戏背景音乐自由

Switch终极音乐播放器TriPlayer:简单三步实现游戏背景音乐自由 【免费下载链接】TriPlayer A feature-rich background audio player for Nintendo Switch (requires Atmosphere) 项目地址: https://gitcode.com/gh_mirrors/tr/TriPlayer 还在为Switch无法在…

作者头像 李华