🏛️ システムアーキテクチャ
OpenHands システムアーキテクチャ図 (2024年7月4日)
これはシステムアーキテクチャの高レベルな概要です。システムはフロントエンドとバックエンドの2つの主要コンポーネントに分かれています。フロントエンドはユーザーインタラクションを処理し、結果を表示する役割を担います。バックエンドはビジネスロジックを処理し、エージェントを実行する役割を担います。
フロントエンドアーキテクチャ
この概要は、主要なコンポーネントとそれらの相互作用を示すために簡略化されています。バックエンドアーキテクチャのより詳細なビューについては、以下のバックエンドアーキテクチャのセクションを参照してください。
バックエンドアーキテクチャ
免責事項: バックエンドアーキテクチャは現在進行中の作業であり、変更される可能性があります。以下の図は、図のフッターに示されているコミットに基づくバックエンドの現在のアーキテクチャを示しています。
この図の更新
バックエンドアーキテクチャ図の生成は部分的に自動化されています。 この図は、py2pumlツールを使用してコード内の型ヒントから生成されます。 その後、図は手動でレビュー、調整され、PNGとSVGにエクスポートされます。
前提条件
- openhandsが実行可能なPython環境 (リポジトリのルートにあるREADME.mdファイルの指示に従って)
- py2pumlがインストールされていること
手順
-
リポジトリのルートから以下のコマンドを実行して、図を自動生成します:
py2puml openhands openhands > docs/architecture/backend_architecture.puml
-
生成されたファイルをPlantUMLエディタで開きます。例えば、PlantUML拡張機能を使用したVisual Studio CodeやPlantTextなど。
-
生成されたPUMLをレビューし、図に必要な調整を行います(欠落部分の追加、ミスの修正、位置の改善など)。 py2pumlは、コード内の型ヒントに基づいて図を作成するため、型ヒントが欠落していたり正しくない場合、図が不完全または不正確になることがあります。
-
新旧の図の差分をレビューし、変更が正しいかどうかを手動で確認します。 過去に図に手動で追加され、現在も関連性のある部分を削除しないように注意してください。
-
図のフッターに、図の生成に使用されたコミットのコミットハッシュを追加します。
-
図をPNGとSVGファイルとしてエクスポートし、
docs/architecture
ディレクトリ内の既存の図を置き換えます。これは(例えばPlantText)で行うことができます。