社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

吴恩达最新开源 AI 同事,在Github爆火了!

Datawhale • 3 周前 • 139 次点击  

 Datawhale干货 

开源项目:OpenWorker

上周,吴恩达和 Rohit Prasad 一起开源了 OpenWorker,一个桌面端的 AI Agent。MIT 协议,完全免费。短短一周,就直接冲到了1.1w Star。

项目地址:https://github.com/andrewyng/openworker官网下载:https://openworker.com

OpenWorker 的定位用一句话就能说清:不是聊天机器人,是交付成果的本地 AI 同事。

你告诉它你要什么结果,比如"帮我准备明天和客户的会议简报""整理一下这周的日历""把 Slack 里这个频道的消息分个类"。它自己拆任务、跨工具执行,最后交给你一份可以直接用的文件。不是一段对话,不是一个待办清单,是成品。

做任何有后果的操作之前(发消息、改日历、跑命令),它会先停下来问你。你说行,它才动。

两位作者的背景值得提一下:一个是 AI 教育和投资领域的标杆人物,一个做过十亿级设备上 Agent 交互的工程主管 。吴恩达不用多介绍了,DeepLearning.AI 创始人、AI Fund 管理合伙人、斯坦福教授、Amazon 董事会成员。Rohit Prasad 大家可能没那么熟:前 Amazon Alexa 首席科学家,后来升任 Amazon AGI 团队负责人,直接向 Andy Jassy 汇报,去年底离开 Amazon。

一、OpenWorker 四层架构,全跑在本地

OpenWorker 的技术栈分四层,全部跑在本地。

┌────────────────────────────────────────────────┐│              OpenWorker desktop app            │  Tauri 2 + React 18├────────────────────────────────────────────────┤│           local agent server (Python)          │  FastAPI · 127.0.0.1:8765├───────────────┬────────────────┬───────────────┤│  your files   │   your tools   │  your model   │  25+ 集成 + MCP│  & terminal   │ 25+ connectors │  any provider │  30 个预置模型 + Ollama└───────────────┴────────────────┴───────────────┘

最上面是桌面壳,Tauri 2 + React 18,就是你看到的那个桌面应用窗口。Tauri 负责原生容器,React 负责 UI 渲染。

往下是本地 Agent 服务器,Python 写的,FastAPI + uvicorn,默认绑定 127.0.0.1:8765。这是整个系统的核心,负责任务规划、工具调用和记忆管理。

再往下是能力和连接器层。本地工具包括文件系统、Git、ripgrep 搜索、终端;远程集成有 25 个以上,GitHub、Slack、Jira、Notion、Linear、HubSpot、Outlook、monday.com、Gmail、Google Calendar 都在列。不够用的话,任何支持 MCP 协议的工具都能接进来。

最底下是模型路由层 ,这里用到了吴恩达自己的另一个开源项目 aisuite,一个轻量级 Python 库,提供跨 LLM 厂商的统一 chat-completions 接口,外加 Agent 层、工具层和 MCP 支持。OpenWorker 官方 README 里写得很直白:如果你想自己搭 Agent 框架而不是用我们的,先去看 aisuite,这个仓库本身就是 aisuite 能做什么的一个参考实现。

模型支持方面,预置了 30 个经过工具调用验证的模型,覆盖 OpenAI、Anthropic、Google Gemini、DeepSeek、Kimi、GLM、Qwen、MiniMax、Mistral、xAI Grok,加上 Together 和 Fireworks 上的开源权重模型,以及通过 Ollama 跑的本地模型。最新的 v0.1.7 又加入了 AWS Bedrock、Google Vertex AI、OpenRouter 和 Meta Muse Spark。自带 API Key,选谁用谁,随时切换。

二、最值得看的设计:权限模型,为 Agent 安全而生

这部分是 OpenWorker 最值得拆开看的设计。

大多数 Agent 项目处理权限的方式比较粗放:要么让 Agent 自由执行,要么每个操作都弹窗确认。OpenWorker 做了一套分级系统。

首先,每一次工具调用都会被分到四个风险等级之一:

  • read:读取,没有副作用,始终允许。

  • write_local:本地写入,限定在工作区路径范围内。

  • exec:执行命令。

  • external:向外部发送信息(发消息、调 API、改日历)。

在此之上,有五种权限模式来决定每个等级的操作怎么处理:

discuss 和 plan 是纯只读模式,Agent 只分析不动手。interactive 是默认模式,读取自动通过,写入、执行和外部操作都需要你确认。auto 允许所有操作但限定路径范围。custom 让你指定哪些工具自动放行。

这套设计里有一个很反直觉的决策:无人值守模式不会提升 Agent 的自主权限上限。

什么意思?如果你让 OpenWorker 在后台跑一个定时任务(比如每天早上自动整理一份简报),它遇到需要确认的操作时不会自己做主,也不会跳过。它会把确认请求放进一个收件箱(Inbox),然后暂停 session,等你回来处理。

大多数 Agent 框架把"用户在不在"和"Agent 能干什么"混在一起。你不在,它就默认可以干更多。OpenWorker 把这两个维度拆开了:你不在场只改变 Agent 找你的方式,不改变它能做的事。另外,shell 命令在任何模式下都必须确认,没有例外。

三、适合想改造 Agent 框架的开发者

OpenWorker 目前是 Open Beta 状态。Mac 版已上线,签名公证都有,支持自动更新。Windows 版有安装包(分 Windows 10 和 11),但还没完成代码签名,安装时会触发 SmartScreen 警告。没有 Linux 版。没有中文界面。

它的代码规模不小:coworker/ 目录下有约 119 个 Python 文件(约 32400 行),surfaces/gui/ 下有约 149 个 TypeScript/TSX 文件,加上 78 个后端测试模块,是一个有完整工程结构的产品级代码库。

但它确实还在快速迭代。从 7 月 23 日发布到现在,已经更新到 v0.1.7,加了自动上下文压缩、token 用量显示、Anthropic 模型的 prompt caching 等功能。项目主页也明确说了,团队内部有一套开发计划,不一定会接受所有方向的 PR。

跟商业产品对比的话:Claude Cowork 和 ChatGPT Work 在集成度和打磨程度上目前领先,但两者都锁定在各自的模型生态里,数据走云端。OpenWorker 的优势在于开源、本地优先、模型无关,适合对数据隐私有要求或者想自己改造 Agent 框架的团队和开发者。

如果你想从源码跑:

git clone https://github.com/andrewyng/openworkercd openworker# 初始化环境(创建 .venv)bash packaging/setup_dev_env.sh# 启动本地 Agent 服务器.venv/bin/openworker-server --cwd ~/your/project --port 8765# 另开一个终端,启动 UIcd surfaces/guinpm installnpm run dev

需要 Python 3.10+、Node 20+。如果要跑完整的桌面版而不是浏览器 UI,需要 Rust 工具链,把最后一步换成 npm run tauri dev。

或者直接去 openworker.com 下载桌面客户端,装好之后填一个模型的 API Key 就能用。

项目地址:https://github.com/andrewyng/openworker
图片
一起“三连

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/199417