アンディ・ン氏、完成品出力型デスクトップAI「OpenWorker」公開
Andrew Ng が発表した「OpenWorker」は、対話型チャットではなく完成された成果物を出力するローカルファーストのデスクトップ AI エージェントであり、厳格な権限管理と多様なモデル対応を特徴とする。
キーポイント
対話から成果物へのパラダイムシフト
ユーザーはプロンプトではなく「達成したい結果(例:完成したドキュメント、数値を含む Slack 返信)」を指示し、AI がそのプロセスを自律的に実行して最終成果物を返す。
厳格なローカル権限管理エンジン
ツール呼び出しを「読み取り」「書き込み」「実行」「外部」の 4 つのリスククラスに分類し、ユーザーの承認レベル(対話型、自動など)に応じて安全に動作する。
多様なモデルとローカル実行環境
OpenAI や Anthropic の商用モデルから Ollama を介した完全なローカルモデルまで 30 種類のモデルをサポートし、API キー不要で完全にローカルで動作可能。
モダンな技術スタックとアーキテクチャ
Tauri 2 と React 18 を用いたデスクトップシェル、Python/FastAPI のローカルエージェントサーバー、そして aisuite に基づくモデルルーターで構成される。
セキュリティと信頼性の設計
ツールやログからの入力を「指示」ではなく「未確認データ」として扱う明示的なプロンプト注入対策が組み込まれており、シェルコマンドは設計上常に確認を求めます。
ローカルファーストのプライバシー
会話履歴やトークン、モデルキーは端末内に保持され、機密情報はモデルのコンテキストやトレースに含まれることなく、クラウドを経由せず直接処理されます。
タスクスコープと自律性の限界
非監視モードでは自律性が向上するのではなく人間の介入ポイントが変わるだけであり、リスク管理は外部リスクに限定されたスコープ内のルールに従います。
重要な引用
OpenWorker asks the user for an outcome, not a prompt: a polished document, a Slack reply containing the actual numbers...
The permission engine is the actual engineering story.
Every tool call is classified into one of four risk classes: read (no side effects), write_local, exec, and external.
The built-in ops persona also instructs the model to treat content from tools, logs, the web, files and incoming messages as untrusted data rather than instructions.
Conversations, connector tokens and model keys stay local, and the secret store is designed so that secrets never enter the model's context, prompts or traces.
影響分析・編集コメントを表示
影響分析
このリリースは、AI エージェントが単なる情報検索やチャットの枠を超え、実際の業務を完遂する自律的なパートナーへと進化することを示す重要なマイルストーンです。特に、ローカル実行と厳格な権限管理を標準装備することで、企業環境での実用性とセキュリティ懸念に対する解決策を提供し、デスクトップ AI ツールの新たな基準を打ち立てる可能性があります。
編集コメント
Andrew Ng が提唱する「成果物指向」の AI エージェントは、従来のチャットボットの限界を打破する実用的なアプローチと言えます。特に、セキュリティリスクが懸念されるデスクトップ環境において、権限管理を設計段階から組み込んだ点は、企業導入に向けた重要な一歩となるでしょう。
Andrew Ng氏が、会話ではなく「完成した成果物」を生成するオープンソースのデスクトップエージェント「OpenWorker」を発表しました。このツールはユーザーにプロンプトを入力させるのではなく、「どのような結果を得たいか」を問います。具体的には、洗練されたドキュメントの作成や、実際の数値を含むSlackへの返信、カレンダーの更新、メールインボックスの整理などです。その後、目標達成に必要なステップを分解し、ローカルファイルや接続されたアプリを横断して作業を進め、重要な変更を加える前にユーザーに確認を取ります。
このアーキテクチャは4層構造で、すべてがユーザーのローカルマシン上で動作します。
リポジトリには、coworker/ ディレクトリ下に119個のPythonファイル(約3万2,400行)、surfaces/gui/ ディレクトリ下に149個のTypeScript/TSXファイル、そして78個のバックエンドテストモジュールが含まれています。
スタックの詳細は以下の通りです。
- デスクトップシェル:React 18 UIを包むTauri 2ネイティブウィンドウ。バンドルIDは
com.openworker.desktopで、Pythonサーバー自体を管理します。 - ローカルエージェントサーバー:FastAPIとuvicorn上のPython 3.10以上。デフォルトでは
127.0.0.1:8765にバインドされます。設定例では、1回のターンにおけるモデル
imageツールの反復回数を制限しています。 - 機能とコネクタ層:ファイル操作、Git、ripgrepを活用した検索、シェル実行、TODO管理といった検証済みのローカルツールに加え、ホスト型統合やMCP(Model Context Protocol)をサポートします。
- モデルルーター:ネイティブ、OpenAI互換、リセラー、ローカルプロバイダーなど、多様なLLMプロバイダを統一的なインターフェースで扱います。
このエンジンは、Andrew Ng氏が開発したプロバイダ非依存のLLMライブラリ「aisuite」を基盤に構築されています。
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
自分で選んだモデルを使えるよう、厳選されたリストから選択
OpenWorker には推論サービスがありません。ユーザーは API キーを貼り付けるか、ローカル実行環境を指すだけで利用できます。
厳選されたモデル行列には正確に 30 のエントリが含まれています。ネイティブプロバイダーとしては OpenAI(GPT-5.6 Sol/Terra/Luna および GPT-5.5)、Anthropic(Claude Fable 5、Opus 4.8、Sonnet 4.6、Haiku 4.5)、Google(Gemini 3.1 Pro、3.6 Flash、2.5 Pro、2.5 Flash)をカバーしています。OpenAI 互換ベンダーからは GLM-5.2、DeepSeek V4、Kimi K2.6、MiniMax M2.5、Qwen3 Max、Grok 4.3、Mistral Large が利用可能です。Together AI と Fireworks を通じてオープンウェイトモデルが提供され、Ollama を介して完全なローカルモデルも利用できます。Ollama の場合は API キーは不要です。
権限管理エンジンこそが、実際のエンジニアリングの核心です
デスクトップエージェントプロジェクトの多くでは、承認機能は UI 上の後付けとして扱われがちです。しかし OpenWorker では、これを型付きのレイヤーとして設計しています。
すべてのツール呼び出しは、4 つのリスククラスに分類されます。"read"(副作用なし)、"write_local"(ワークスペースを変更するパススコープ)、"exec"(コマンド実行)、そして "external"(マシン外での副作用)です。
これらに基づき、5 つの権限モードが動作を決定します。「discuss」と「plan」は読み取り専用です。デフォルトの「interactive」では、書き込みや外部アクションの実行前にユーザーに確認を求めます。「auto」はパススコープを維持しつつすべての操作を許可します。また、「custom」では、ユーザーがリストアップした特定のツールのみを自動承認します。
この設計には2 つの特徴的な判断があります。
1 つ目は、無人モード(unattended mode)が自律性の上限を引き上げるわけではないという点です。これは人間との接点をどこにするかを変えるだけです。本来ならインラインで表示されるプロンプトは「Inbox」にルーティングされ、回答があるまでセッションは一時停止されます。
2 つ目は、タスクスコープの恒久ルールが外部リスクにのみ限定されているという点です。シェルコマンドの実行については、設計上、常に確認を求め続ける仕組みになっています。
組み込みのオペレーション担当ペルソナ(ops persona)は、ツールやログ、Web 上のコンテンツ、ファイル、着信メッセージからのデータを「指示」としてではなく、「信頼できないデータ」として扱うようモデルに指示します。これは出荷時のペルソナに明記された、プロンプトインジェクションに対する明確な防御姿勢です。
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
プライバシー:ローカルファースト
モデルへの呼び出しは、マシンから設定されたプロバイダへ直接行われます。会話履歴、コネクタのトークン、モデルキーはすべてローカルに保持され、シークレットストアも設計上、機密情報がモデルのコンテキストやプロンプト、トレースに入ることはありません。
クラウド上に存在するのは、ワンクリックコネクタのための OAuth ハンドシェイクを処理するオプションのブローカーのみです。これは Auth0 の Authorization Code with PKCE を使用しています。コネクタトークンはマシンに直接渡され、クラウド上には一切保存されません。アプリは手動で認証情報を貼り付けることで、サインアウト状態でも完全に機能します。
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
Key Takeaways
OpenWorker は、チャット回答ではなく完成した成果物を返す、Andrew Ng が公開した MIT ライセンスのデスクトップ AI コワークラーです。
このスタックは、Tauri 2 と React をベースとしたシェル上に、aisuite を基盤とするローカルの Python FastAPI エージェントサーバーを構築しています。
モデルへのアクセスは「持ち込みキー(BYOK)」方式で、30 の厳選されたツール呼び出し対応モデルに加え、Ollama を使った完全なローカル利用も可能です。
型安全なリスクエンジンが、read/write_local/exec/external という 5 つの権限モードを通じて、すべてのアクションを制御します。
GitHub リポジトリ、プロジェクトサイト、および発表記事をチェックしてください。本件の研究に対する全てのクレジットは、このプロジェクトの研究開発者たちにあります。
アンドリュー・エン氏が「OpenWorker」を公開しました。これはチャットではなく、完成した成果物を返すオープンソースのローカルファースト型デスクトップ AI コワーカです。
このツールは MarkTechPost で最初に紹介されました。
原文を表示
Andrew Ng has announced OpenWorker, an open-source desktop agent that produces finished work rather than conversation. OpenWorker asks the user for an outcome, not a prompt: a polished document, a Slack reply containing the actual numbers, an updated calendar, a triaged inbox. It then breaks that outcome into steps, works across local files and connected apps, and checks in before anything consequential.
The architecture is four layers, and all of them run on your machine
The repository contains 119 Python files (~32,400 lines) under coworker/, 149 TypeScript/TSX files under surfaces/gui/, and 78 backend test modules.
The stack breaks down as follows:
Desktop shell — a Tauri 2 native window wrapping a React 18 UI. The bundle identifier is com.openworker.desktop, and the shell supervises the Python server itself.
Local agent server — Python 3.10+ on FastAPI and uvicorn, binding to 127.0.0.1:8765 by default. The example config caps a turn at 12 model
imagetool iterations.
Capability and connector layer — vetted local tools (files, git, ripgrep-backed search, shell, todo) plus hosted integrations plus MCP.
Model router — one interface over native, OpenAI-compatible, reseller and local providers.
The engine is built on aisuite, Andrew Ng’s provider-agnostic LLM library.
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
Bring your own model, from a deliberately small curated list
There is no OpenWorker inference service. The user pastes an API key, or points the app at a local runtime.
The curated model matrix contains exactly 30 entries. Native providers cover OpenAI (GPT-5.6 Sol/Terra/Luna and GPT-5.5), Anthropic (Claude Fable 5, Opus 4.8, Sonnet 4.6, Haiku 4.5) and Google (Gemini 3.1 Pro, 3.6 Flash, 2.5 Pro, 2.5 Flash). OpenAI-compatible vendors add GLM-5.2, DeepSeek V4, Kimi K2.6, MiniMax M2.5, Qwen3 Max, Grok 4.3 and Mistral Large. Open-weight models arrive through Together AI and Fireworks, and fully local models through Ollama, which requires no key at all.
The permission engine is the actual engineering story
Most desktop agent projects treat approvals as a UI afterthought. OpenWorker treats them as a typed layer.
Every tool call is classified into one of four risk classes: read (no side effects), write_local (mutates the workspace, path-scoped), exec (runs commands), and external (side effects off the machine). Five permission modes then decide what happens: discuss and plan are read-only, interactive is the default and asks before writes, commands and external actions, auto allows everything while remaining path-scoped, and custom auto-approves a user-listed set of tools.
Two design decisions stand out.
First, unattended mode does not raise the autonomy ceiling — it only changes where the human is reached. Prompts that would appear inline are routed to an Inbox, and the session suspends until answered.
Second, task-scoped standing rules are restricted to external risk only. Shell commands ask forever, by design.
The built-in ops persona also instructs the model to treat content from tools, logs, the web, files and incoming messages as untrusted data rather than instructions. That is an explicit prompt-injection posture, written into the shipped persona.
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
Privacy: local-first
Model calls go directly from the machine to the configured provider. Conversations, connector tokens and model keys stay local, and the secret store is designed so that secrets never enter the model’s context, prompts or traces.
The only cloud component is an optional broker that handles OAuth handshakes for one-click connectors, using Auth0 Authorization Code with PKCE. Connector tokens are handed straight to the machine and are never stored in the cloud. The app is fully functional signed out, using manually pasted credentials.
(function(){
window.addEventListener('message',function(e){
var d=e.data;if(!d||!d.owEmbed||!d.height)return;
var f=document.getElementById('frame-'+d.owEmbed);
if(f)f.style.height=d.height+'px';
});
})();
Key Takeaways
OpenWorker is Andrew Ng’s MIT-licensed desktop AI coworker that returns finished deliverables, not chat replies.
The stack is a Tauri 2 + React shell over a local Python FastAPI agent server built on aisuite.
Model access is bring-your-own-key across 30 curated tool-calling models, plus fully local Ollama.
A typed risk engine (read/write_local/exec/external) gates every action across five permission modes.
Check out the GitHub Repo, the project site, and the announcement. All credit for this research goes to the researchers and developers of this project.
The post Andrew Ng Just Released OpenWorker: An Open-Source, Local-First Desktop AI Coworker That Returns Finished Deliverables Instead of Chat appeared first on MarkTechPost.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み