
2026/09/30 18:55
MCP なしとの回答でした
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Pi.dev は、Model Context Protocol (MCP) の統合によってアーキテクチャを根本的に向上させ、同標準が構造化されたデータをテキストダンプよりも優遇するといった大幅な進歩を目撃し、従来の懐疑観を覆しました。この統合により「Jev」の使用が可能となり、「Codemode」が導入されました。Codemode は harness 側でバッシュループではなく JavaScript サンドボックス内でツールの呼び出しを調整します。MCP が設定されている場合、Codemode はセッション状態を自動的に管理し、構造化されたツールの発見とカスタムロジックを組み合わせた柔軟なワークフローを実現します。例えば、Linear イシュートラッカーなどのリッチなデータソースを Cloudflare Workers AI を用いて分析し、バグ进行分类したり不満を持つコメント投稿者を特定したりすることもでき、コンテキストメモリを劣化させることなく実行できます。分析判定結果は後続の再プレイおよびレビューのために特定して保存され、複雑なデータ分析を高速化し、型安全性を高め、かつ Pi エコシステム内に完全に封入することで、開発者の体験を変革します。
本文
Pi への MCP コア統合と Codemode の進化
かつて Pi.dev は「MCP サポートなし」と宣言しましたが、現在は Pi アップグレードで MCP が公式にサポートされるようになりました。なぜ方針が変わったのか?その理由は以下の通りです。
世界の変化と戦略転換
- 静止した世界ではない
- 過去 1 年間で MCP 技術が急速に進化しました。
- 以前の「拡張機能としての扱い」から、現在は 「コアの一部」として再考・統合 されています。
- Pi のエコシステムとの親和性
- Pi は優れた拡張機能エコシステムを備えています。
- MCP はインタプリタ形式の「触って遊べるサンドボックス」という点で、Pi の求めるものと非常に似ています。
具体的に何が変わったのか?
ツール統合の向上
- Jev との連携強化
- 変更により、Jev というツールを Pi 内でより容易に利用できるようになりました。
- 従来の課題解消
- Codemode を備えた MCP は、従来からの多くの問題(遅延読み込み、メタデータ不足など)を解決します。
アーキテクチャの再設計
- 単純なダンプからインテリジェントな発見へ
- 従来のハルネスは「ツールをコンテキストにダンプ」するだけでしたが、現在は OpenAPI に近く、構造化されたデータを返し、インテリジェントにディスカバー可能 な方向へシフトしています。
- JavaScript サンドボックスの活用
- CLI のように Bash コマンドを組み合わせる必要はありません。
- MCP は Codex/Harness が行うように、ツールを JavaScript のサンドボックスに公開する構造 となっています。
LLM における現代の MCP
なぜ Codemode を別実装にしなかったのか?それは以下の理由からです。
- モデル対応の柔軟性
- Pi は最近、新しいモデルへの遅延的なツールの読み込みや、推論レベルの変更などに対応できるように構築されました。
- ツールのロッドアウト(構成)もこれらの能力に適切に対応するようアップグレードされています。
- メタデータの最適化 -通常の MCP 拡張機能では十分なメタデータが得られず、「Codemode 固有のツール」として振る舞う必要がありました。
- 擁抱する姿勢
- 何かを肯定的に影響させる最良の方法は、それを擁抱することです。
- 私たちは現代の MCP をより良好な位置にあると考えていますし、サーバーやパターンもさらに改善できます。
Codemode とは何か?
2 つの実行環境の違い
- 一般的なハルネス(Harness)
- ハルネスのエージェントループ内で動作するが、ツール実行には信頼性の低い環境を使用することが多い。
- Codemode の特別之处
- ハルネスが実行される場所と同じ場所で動作します。
- ツール呼び出しのオーケストレーションと調整を担当し、順序に関する柔軟性を与えます。
- JavaScript を使用して統合するサンドボックスであり、状態はファイルシステムではなくセッション転写(トランスクリプト)の一部として維持されます。
技術的利点
- JavaScript と WASM の組み合わせ
- 理論的にはあらゆる言語可能ですが、小さなサイズで保護された WASM バイナリ として配布できる JavaScript が特に魅力的です。
- 自動読み込み
- Pi で MCP を構成すると自動的に Codemode が読み込まれ、デフォルトのツールとして追加されます。
実用例:Linear MCP と Jev の統合
「typesafe/jev を使用して、タスクトラッカー(Linear)で最もイライラしたコメントの著者を特定」するというシナリオが可能になります。
- Linear MCP から開かれた問題を取得
- Jev に各スレッドのトーンを 4 つ評価させる
- 分析と可視化
- Linear と Jev を賢く統合し、Pi 内部から分析を行います。
- 一切のコンテキストを無駄にしません。
コード例:Jev クラスファイヤー(分類)の実装
以下のスクリプトで、Linear MCP と Jev の連携を示します。
const { issues } = await tools.mcp__linear__list_issues({ team: "Pi", state: "open", limit: 250, }); // Jev モデルをロード const jev = await models.getModelOfType( "classifier", "cloudflare-workers-ai", "typesafe/jev" ); // 分類用クエスチョン定義 const questions = { frustration: { type: "choice", instructions: "書き手の感情的なトーンだけを判断してください。バグの深刻さは無視してください。", criteria: { none: "中立、事実に基づいたもの、あるいは深刻なバグに関わっても友好的", mild: "明確な不満、焦り、または失望", high: "明らかに怒っている、イライラしている、皮肉を言っている、または参っている", }, }, }; // 並列処理で問題を評価 const results = []; let next = 0; async function worker() { while (next < issues.length) { const issue = issues[next++]; // コメントを取得 const { comments } = await tools.mcp__linear__list_comments({ issueId: issue.identifier, }); // Jev で分類実行 const c = await models.classify(jev, { state: { ...issue, comments }, questions }); results.push({ id: issue.identifier, title: issue.title, ...c.answers.frustration }); } } // 並列実行 await Promise.all([worker(), worker(), worker(), worker()]); store("frustration", results);
結果の出力
{ "total": 167, "counts": { "none": 156, "mild": 11 }, "flagged": [ "PI-7740 TUI after /reload does not follows custom tool's re…", "PI-9566 context size defaults to 128k despite the real size…", "PI-10031 Pi sporadically stuck in \"Working...\" when thinking…", "PI-4714 [feature] /update TUI command instead of pi update", "PI-5916 Support provider extensions with model aliases and…", "PI-7547 [Windows] [sink-thread] How do you use Pi on window…", "PI-6907 Add an Installation section to the README", "PI-6212 Proposal: Bedrock path should honor `compat.forceAd…", "PI-9932 before_agent_start: forced system prompt keeps tool…", "PI-7730 High CPU usage on Mac OS with long session", "PI-6600 pi update --extensions and npm scripts: npm 11.16.0…" ] }
結果分析
- 全体の状況
- 開かれた 167 の問題のうち、156 は中立、11 がわずかにイライラと評価されました。
- 高レベルのイライラを抱えているものは見つかりませんでした(今回の分類基準による)。
- 最も明確なケース(トップ 10)
:README にインストールセクションがないPI-6900
:Esc キーを押して思考中から固まるPI-10031
:/update コマンドのリクエストPI-4714
:macOS で長時間セッション時に高い CPU 使用量PI-7730
- データの活用
- 各問題の判断結果は Codemode の「frustration」下に保存されます。
- 問題リストを再度取得することなく、どの項目も掘り下げることができます。
結論
Codemode と MCP の統合は、Pi が世界の変化に合わせてどのように慎重に適応し続けているかの具体例です。
- 従来型:単なるダンプ、低信頼性環境
- 現代型(Codemode):高信頼性サンドボックス、JavaScript ベース、動的なオーケストレーション
この進化により、Pi はより高度なツール発見とインテリジェントな自動化を実現しています。