【要約】Jw_cad と MCP をつなごうとして分かった、CADエージェントに必要なAPIの話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がJw_cadをAIエージェントから制御しようとした際、外部から能動的に操作する手段がない問題に直面した。AIが自律的に図面を操作する仕組みを構築しようとしたが、以下の技術的障壁が立ちはだかった。
- ・Jw_cadには、外部プログラムから命令を送るための公式APIが存在しない。
- ・拡張機能である「外部変形」は、ユーザーがメニューから手動で起動することを前提としている。
- ・MCPの「AIがツールを能動的に呼ぶ」という設計思想と、Jw_cadの「ユーザーが操作をトリガーする」仕様が根本的に矛盾する。
// Approach
開発者は、APIが存在しない状況下でAIによる自動操作を実現するために、複数の回避策を検討した。設計上の制約を突破するためのアプローチは以下の通りである。
- ・予約型アーキテクチャ:MCPサーバーが処理内容をpending_job.jsonに書き出し、ユーザーが手動でバッチを実行する方式。
- ・RPA的アプローチ:WinAPIやUI Automationを用い、マウスやキーボード操作をプログラムで擬似的に送り込む方式。
// Result
検討の結果、Jw_cadの仕様では実用的なCADエージェントの構築は極めて困難であると結論付けた。試みた手法には以下の課題が残った。
- ・予約型はユーザーの手動操作が介在するため、AIの能動性が失われる。
- ・RPA方式はウィンドウ状態に依存し、エラー時のロールバックも困難で、プロダクト品質を担保できない。
- ・真のCADエージェントには「能動的なAPI」と「安全なトランザクション」が必須であると再定義した。
Senior Engineer Insight
> 外部APIの欠如は、自動化における致命的なボトルネックとなる。RPAによる回避は、UIの非決定性により挙動が不安定になり、運用コストを増大させる。大規模なシステムや商用プロダクトにおいて、UI操作の模倣は信頼性の観点から推奨できない。スケーラビリティと堅牢性を確保するには、エージェントから能動的に呼び出せるAPIと、トランザクション制御による確実な状態管理が不可欠である。