Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

介绍 Memoh Desktop,一个多智能体桌面应用。 过去几个月,我们一直在维护 Memoh 这个多智能体自部署服务。自部署适合长期在线、多人使用和接各种消息渠道,但对个人用户来说,搭环境还是有点重。所以这次我们把 Memoh 搬到了桌面上。 在 Memoh Desktop 里,你可以创建多个 agent。它们可以有不同身份、不同记忆和不同 workspace,也可以连接不同的 channel。比如一个 agent 负责日常聊天和消息渠道,一个 agent 专门处理文件和代码任务,另一个 agent 用来跑网页自动化。 这些 agent 可以直接操作你的电脑,也可以使用宿主机 Docker 环境做沙盒隔离。需要本机权限的时候,就让它操作本地环境;需要安全边界的时候,就把它放进 Docker workspace 里跑。每个 agent 都有独立身份,目前支持 9 种 channel 连接。 0.9 版本里,我们还引入了容器内桌面环境。现在可以直接在 Docker 容器里运行一个 Xfce 桌面,并在里面启动有头浏览器,再通过 WebRTC 连接到这个容器桌面。也就是说,agent 不只是跑 headless Playwright,它可以在一个真实的图形浏览器会话里操作网页。很多登录、复杂交互、网页自动化场景,会比纯 headless 方式更自然,也能少踩一些兼容和风控问题。 下载链接见评论区。

47,369 Aufrufe • vor 4 Monaten •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

大家都在卷云端Agent,我却把多Agent做进了桌面端 在技术社区,多Agent系统的文章越来越多,但大多数都围绕框架展开: ➢LangChain ➢AutoGen ➢CrewAI 我这次想讲的不是框架,而是一个更实际的问题: 如果不搭云端基础设施,只靠一个桌面应用,能不能从零构建一个“活的”多 Agent 协作系统? 答案是:可以 --- 而且它不是Demo 这套系统,长在一个真实的桌面Web3应用里,已经集成了: -EVM / Solana 双链监控 -SWAP 聚合交易 -链上新币追踪 -交易仪表盘 -AI 深度解读 多Agent不是从PPT里设计出来的,而是在生产环境中自然演化出来的。 --- 在讨论多Agent技术实现之前,我先回答一个方向性问题: 为什么我最后选的是桌面端,而不是更主流的云端部署,或者更轻的浏览器插件方案? 这个选择的本质,不是“谁更先进”,而是三条技术路径之间的权衡。 --- 云端部署,是当下最主流的多Agent实现方式。 它的优势很明显: 可以随时为Agent团队加GPU 模型升级不需要用户干预 服务端可以维护全局共享记忆 但代价同样明显: 用户数据必须经过服务器中转 链上交易往往要对服务器开放私钥访问权限 而且会持续产生部署和维护成本 --- 浏览器插件,是另一条轻量路线。 它可以直接注入页面,读取DOM,模拟用户操作,对单一自动化任务非常高效。 但问题也很直接: >它运行在浏览器沙箱里 >缺少持久化存储能力 >缺少长时间运行的后台线程 >很难支撑复杂的记忆系统 >也很难支撑Agent与Agent之间的异步互动 --- 桌面应用则处在一个独特的位置。 它拥有完整的系统资源访问权限: ➢可以自启动后台线程 ➢可以读写本地文件系统 ➢可以建立持久化数据库连接 这些能力,恰恰是多Agent系统真正需要的底层设施 代价当然也有: 它依赖本地算力,模型推理通常仍要调用云端 API 它需要完整 Python 环境 更新和分发也比网页应用更复杂。 --- 所以,选择桌面端构建多Agent,本质上是在用分布式能力,换取数据隐私和调度效率。 这不是绝对优势,而是场景决定的选择。 对加密货币交易、链上分析、监控这类系统来说,数据隐私要求远高于常规应用: >钱包地址 >交易历史 >持仓数据 这些信息落在云服务器上,本身就是风险面。 --- 更重要的是调度效率 在单体桌面应用里,主Agent调度子Agent执行任务,不需要走HTTP / RPC这类网络协议,而是可以直接进程内调用。 这意味着: →网络开销被彻底消除 →调用延迟从毫秒级压到微秒级 对高频分析、链上监控、交易辅助这种场景来说,这种差异会直接影响系统的时效性。 --- 多Agent系统的第一个核心挑战,其实不是“怎么让它们聊天”,而是“怎么把它们隔离开” 主Agent、合约分析Agent、安全审计Agent,再加上用户,如果聊天记录和记忆混在一起,身份就会混淆。 而一旦混淆,信息丢失和错误推理的代价,随时会发生。 --- 我的做法是: 代码模板统一,运行数据隔离 所有子Agent共用同一套 ` 引擎,但通过动态表名,实现物理级的数据隔离: `table_name = f"chat_history_{self.agent_id}"` 然后自动创建对应表。 也就是说: trader Agent会生成 `chat_history_trader` 审计 Agent 会生成自己的 `chat_history_xxx` 主 Agent 也有自己的独立聊天表 这不是逻辑隔离,而是数据库层面的物理隔离。 --- 反思笔记也是同样的设计。 每个子 Agent 都会记录自己的反思键: `reflection_key = f"auto_reflection_{self.agent_id}"` `self.api._agent_remember("master_insight", reflection_key, summary)` 这样每个Agent只积累自己的长期反思, 不会污染其他Agent的记忆。 这套方案最精髓的地方在于: 一次设计,终身复用。 --- 后面再新增第三个、第四个Agent,不需要改任何核心代码。 只需要复制目录结构,补上配置文件。 模板引擎就会自动为它生成: →独立数据库表 →独立反思键 →独立聊天存储区 这让我越来越相信一件事: 好的架构,不一定更复杂, 但一定更容易复用。 --- 接下来是调度问题。 在分布式系统里,主Agent调子Agent,通常要依赖: -HTTP / RPC 通信 -服务发现 -负载均衡 但在单体桌面应用里,我把这件事简化成了一个直接函数调用: `sub = self.sub_agents[agent_id]` `result = sub.process(task, save_history=False)` 这就是“命令而非请求”。 --- 这种“传话式调度”有两个好处: 第一,延迟从毫秒级降到微秒级,所有数据都留在本地流转 第二,主 Agent 不需要知道子 Agent 的内部实现细节,只需要知道: “它可以处理什么类型的任务” 这其实就是清晰的职责边界。 --- 为了让主Agent真正会“派活”,我把所有子Agent的能力清单,动态注入进主Agent的系统提示词。 例如: 合约分析 Agent:可用工具 `get_contract_market_data`、`run_contract_risk_check` 安全审计 Agent:可用工具 `check_token_security`、`check_token_audit_binance` 这样主Agent接到用户指令后,就能自动判断任务类型,并选择合适的子Agent执行。 --- 权限控制,是整个多Agent系统里最核心的安全问题之一。 主Agent持有26个Web3专属工具,覆盖: SWAP 报价 链上分析 安全检测 数据查询 但每个子Agent只应该使用自己那一小部分工具。 所以第一层,我在代码层做了严格白名单过滤: `return [t for t in all_tools if t["function"]["name"] in self.allowed_tools]` --- 但只有代码过滤还不够。 因为大模型会产生“幻觉”,它可能尝试调用未授权工具。 所以第二层,我在系统提示词末尾,直接写入“工具使用铁律”: 你只拥有以下这些工具,绝对不能越界。 如果任务需要其他工具,必须明确告诉老板你没有权限。 代码层负责“不能看到” 提示词层负责“不会越界” 这是我在权限隔离上做的双层防护。 --- 还有一个我自己很喜欢,但最不显眼的设计: 我给整个Agent 团队,单独做了一个茶水间 市面上多数多Agent系统,只做“用户 -> Agent”的交互。 Agent 之间互不交流。 但我单独设计了一个 `agent_interactions` 空间,让 Agent 和 Agent 之间也能异步互动。 --- 它的触发机制甚至很简单: `selected_id = random.choice(list(api.sub_agents.keys()))` `selected_sub = api.sub_agents[selected_id]` 每次触发时,引擎随机选人,动态生成一轮对话,再写回数据库,前端实时渲染。 我还额外加了后台检查线程和防无限循环机制: 每隔 2-3 分钟检查最后一条消息 如果最近 3 条都是自动回复,就自动暂停 避免它们半夜自己聊到停不下来。 --- 这个“茶水间”的价值不在于直接创造业务收益,而在于一种潜移默化的系统人格塑造。 它不强调自己的存在, 却在悄悄维持 Agent团队的凝聚力、性格关系和健康状态。 你几乎感觉不到它, 但系统会因为它,变得更像一个“活着的团队”。 --- 在记忆层设计上,我最后没有引入向量数据库,而是继续深度定制 SQLite。 不是因为技术保守,而是因为工程决策必须在约束条件下做权衡。 对桌面应用来说,多一个依赖,就多一个故障点、多一个安全风险面、多一个打包负担。 结果是: >几张SQLite表 >动态表名 >结构化JSON字段 就支撑起了3个乃至更多Agent的独立记忆系统。 --- 这套记忆系统现在已经形成了一条完整链路: 短期对话记忆(20条) -> 长期反思笔记(6小时一次) -> 结构化 JSON 记录 而我还在继续推进8个方向: ➤上下文延续 ➤记忆结构化 ➤记忆驱动行为 ➤心理学三类长期记忆 ➤团队协作记忆 ➤动态进化记忆 ➤知识图谱记忆 ➤记忆压缩与高效检索 我的目标,不是让Agent记住你说过什么 而是让它从记住你说过什么的工具,慢慢进化成能理解你、预测你、协同你的长期伙伴 GitHub: 作者:Powerpei(萧楠)

Powerpei

227,448 Aufrufe • vor 4 Monaten

腾讯刚开源的 BrowserSkill也太给力了啊! 我用 WorkBuddy 实测了一遍。 装好以后,WorkBuddy 可以直接操作你已经登录的 Chrome,自己打开网页、搜索内容、点击页面、读取数据和截图。 以前让 Agent 操作浏览器,经常会启动一个全新的环境。账号没有登录,浏览器里原来的页面和状态也用不上。BrowserSkill 可以直接复用现有的浏览器登录状态,同时把任务放在单独的 Agent Window 里运行,不会打乱你正在使用的窗口。 它由三个部分组成。 Skill 告诉 WorkBuddy 怎样操作浏览器,bsk CLI 负责在本机传递命令,浏览器插件负责连接 Chrome。只要 Agent 能调用 Shell,就可以接入这套工具,所以除了 WorkBuddy,它也支持 Codex、Cursor、Claude Code 等 Agent。 这类工具很适合做网页资料调研、社交媒体热点搜索、重复的后台操作,也可以拿来检查网页和测试前端。 我这次用 WorkBuddy 做了几项测试: • bsk doctor 七项检查全部通过 • 识别出 Chrome 当前打开的 17 个标签页 • 找到了其中的 3 个 X 页面 • 新开页面搜索 “Gemini 4” • 读取并整理了 Top 排序里的 7 条结果 整个过程中,我原来打开的浏览器页面没有受到影响。任务结束以后,BrowserSkill 创建的 session 也正常关闭了。 安装同样很简单。 第一步,在 WorkBuddy 里手动安装 BrowserSkill。 第二步,让 WorkBuddy 帮你安装 bsk CLI,下载、配置和检查环境都交给它。 第三步,在 Chrome 商店安装 BrowserSkill 插件,然后确认连接成功。 需要自己动手的地方,基本只有安装 Skill 和浏览器插件。剩下的安装与测试都可以直接交给 WorkBuddy。 我把完整的安装和实测过程录下来了,想试的可以跟着视频走一遍。 项目地址 Chrome 插件

雨哥向前冲

38,932 Aufrufe • vor 2 Tagen

Phone Harness 最近火了以后,大家开始意识到 Agent 终于可以真的操作手机了。 Phone Harness 的路线过于极客。 它需要 Mac 和本地 iPhone,通过 iPhone Mirroring 把手机画面交给 Claude Code 或 Codex,再通过截图和 OCR 理解屏幕内容,最后模拟点击、滑动和输入去操作这台 iPhone。 但同样是 Phone Agent,我觉得 Airtap 把场景往外扩了一层。 它不只是给 Agent 一个遥控手机的能力,而是真的给 Agent 配了一台完整的云端 Android。 我想看看这台 Android 到底能走多远,就给 Airtap Ai 的公开测试号 +1 (650) 444-9517 发了条 iMessage,让它直接打开 Termux 跑 Python。 这件事有意思的地方在于,Airtap 后面跑的本来就是完整 Android。 所以不只是能打开 TikTok、Amazon、Google 这些 App。 还可以直接装 Termux,Termux 本身就是 Android 上的终端和 Linux 环境。 打开以后运行 pkg install python 就能把 Python 环境装进去。 到这里,这台远程手机就多了一层完全不同的能力。 它不只可以点 App。 还可以直接成为一个远程代码执行环境。 这次我让它用 Python 获取 Hacker News 当前 Top 100 热门帖子,从里面筛出 AI、LLM、Agent、AI Coding 相关内容,再根据 score 和评论数排序,最后生成一份 HTML 报告。 整个过程都发生在远程 Android 里。 Airtap 打开 Termux,跑 Python,获取数据,处理结果,再生成 ai_hn_report.html。 报告完成以后,它还能把 HTML 打开,截图,再直接通过 iMessage 把图片发回来。 这也是我觉得 Airtap 和 Phone Harness 虽然都在做 Phone Agent,但使用边界很不一样的地方。 Phone Harness 更像是让 Claude Code 或 Codex 获得操作本地 iPhone 的能力。 Airtap 更像是直接给 Agent 一台可以自己干活的 Android。 App 是它的 GUI,Termux 是它的命令行,iMessage 是我给这台手机派任务的入口。 它可以去 App 里点,也可以进终端跑 Python。 可以抓数据,可以处理文件,可以生成 HTML,最后还能把图片和结果直接发回消息里。 所以比起 AI 终于会点手机了,我现在更感兴趣的是另一件事。 当 Agent 自己拥有一台完整的手机以后,还有多少原本需要电脑和手机来回切换的工作,可以直接丢给它

白骏知识分享

59,190 Aufrufe • vor 1 Monat