Skip to content

otsukanaaaa/agents-orchestrator-workflow

Repository files navigation

AIエージェント自動生成・実行システム

自然言語でタスクを与えると、そのタスクから実行計画とエージェント組織を自動生成し、そのエージェント組織でタスクを実行するシステムです。

特徴

  • 自動タスク分析: 自然言語タスクを分析し、実行計画を生成
  • 動的組織設計: タスクに最適なエージェント組織を自動設計
  • エージェント自動生成: 必要な役割とスキルを持つエージェントを動的に生成
  • 分散実行: マルチエージェントによる協調的なタスク実行
  • リアルタイム監視: エージェント間の通信と実行状況をリアルタイム監視

システム構成

1. タスク分析器 (TaskAnalyzer)

  • 自然言語タスクを分析し、実行計画を生成
  • タスクの複雑度評価
  • サブタスクへの分解
  • 必要スキルの特定

2. 組織設計器 (OrganizationDesigner)

  • 実行計画に基づいてエージェント組織を設計
  • エージェントロールの決定
  • 組織構造の最適化
  • 通信プロトコルの設定

3. エージェント実行環境 (ExecutionOrchestrator)

  • エージェントの動的生成と管理
  • タスクのスケジューリング
  • エージェント間通信の仲介
  • 実行状況の監視

インストール

git clone https://github.com/your-repo/agent-generator.git
cd agent-generator
pip install -r requirements.txt

基本的な使用方法

1. シンプルな使用例

import asyncio
from src import AgentGeneratorSystem

async def main():
    # システムを初期化
    system = AgentGeneratorSystem()
    
    # 自然言語でタスクを指定
    task = "ユーザーの購買履歴を分析して、商品推薦レポートを作成してください"
    
    # タスクを実行
    result = await system.execute_task(task)
    
    print(f"実行結果: {result['success']}")
    print(f"メッセージ: {result['message']}")

asyncio.run(main())

2. 設定をカスタマイズした使用例

from src import AgentGeneratorSystem, SystemConfig

# カスタム設定
config = SystemConfig(
    max_agents=15,                # 最大エージェント数
    execution_timeout=300,        # 実行タイムアウト(秒)
    enable_llm=True,             # LLM使用の有効化
    llm_model="gpt-4"            # 使用するLLMモデル
)

system = AgentGeneratorSystem(config)

3. 複雑なタスクの例

task = """
新しいEコマースプラットフォームの開発プロジェクトを計画してください。
以下の機能を含める必要があります:
1. ユーザー認証システム
2. 商品カタログ管理  
3. ショッピングカート機能
4. 決済システム統合
5. 在庫管理
6. レビュー・評価システム

各機能について設計、実装、テストの計画を立て、
必要なリソースと時間を見積もってください。
"""

result = await system.execute_task(task)

デモの実行

システムには3つのデモモードが用意されています:

cd src
python main.py
  1. シンプルなタスク: 基本機能のデモ
  2. 複雑なタスク: 大規模プロジェクトのデモ
  3. 対話型モード: リアルタイムでタスクを入力

エージェントの種類

システムは以下のエージェントロールを自動生成できます:

  • Manager: プロジェクト管理、意思決定
  • Analyst: データ分析、調査研究
  • Developer: コード実装、システム開発
  • Reviewer: 品質チェック、レビュー
  • Coordinator: タスク調整、進捗管理
  • Tester: テスト実行、品質保証
  • Designer: UI/UX設計、アーキテクチャ設計
  • Researcher: 情報収集、技術調査
  • Documenter: ドキュメント作成、技術文書化

組織構造

システムは4つの組織構造を自動選択できます:

  1. フラット型 (Flat): 簡単なタスクに適用
  2. 階層型 (Hierarchical): 複雑なタスクに適用
  3. マトリクス型 (Matrix): 非常に複雑なタスクに適用
  4. ネットワーク型 (Network): 特殊なタスクに適用

実行計画の例

{
  "task_id": "task_abc123",
  "objective": "ユーザーの購買履歴を分析して、商品推薦レポートを作成",
  "complexity": "moderate",
  "phases": [
    {
      "phase_id": "phase_1",
      "name": "データ収集",
      "tasks": [
        {
          "task_id": "subtask_データ収集_1",
          "description": "データ収集のサブタスク1",
          "required_skills": ["research", "analysis"],
          "estimated_duration": "30min"
        }
      ]
    }
  ],
  "success_criteria": [
    "分析結果が明確に文書化されていること",
    "主要な発見事項が特定されていること"
  ]
}

エージェント組織の例

{
  "organization_id": "org_xyz789",
  "structure_type": "hierarchical",
  "agents": [
    {
      "agent_id": "agent_000_manager",
      "role": "Manager",
      "capabilities": [
        {
          "skill_type": "planning",
          "proficiency_level": 0.9,
          "tools": ["task_tracker", "gantt_chart"]
        }
      ],
      "manages": ["agent_001_analyst", "agent_002_developer"]
    }
  ]
}

API リファレンス

AgentGeneratorSystem

メソッド

  • execute_task(task_description: str): タスクを実行
  • get_execution_history(): 実行履歴を取得
  • save_execution_history(filepath: str): 実行履歴をファイルに保存
  • visualize_organization(organization): 組織構造を視覚化

SystemConfig

パラメータ

  • enable_llm: bool: LLMの使用を有効化
  • llm_model: str: 使用するLLMモデル
  • max_agents: int: 最大エージェント数
  • execution_timeout: int: 実行タイムアウト(秒)
  • enable_monitoring: bool: 監視機能の有効化
  • log_level: str: ログレベル

実行結果の監視

実行状況は以下の形式で取得できます:

# リアルタイム実行状況
status = orchestrator.get_execution_status()
print(f"完了タスク: {status['completed_tasks']}/{status['total_tasks']}")
print(f"失敗タスク: {status['failed_tasks']}")

# 組織構造の視覚化
org_viz = system.visualize_organization(organization)
print(org_viz)

拡張・カスタマイズ

カスタムエージェントの作成

from src.agent_executor import BaseAgent

class CustomAgent(BaseAgent):
    async def execute_task(self, task):
        # カスタムタスク実行ロジック
        result = {"custom_result": True}
        return result
    
    async def process_message(self, message):
        # カスタムメッセージ処理
        return None

カスタム組織構造の追加

from src.organization_designer import OrganizationDesigner

class CustomOrganizationDesigner(OrganizationDesigner):
    def design_organization(self, execution_plan):
        # カスタム組織設計ロジック
        organization = super().design_organization(execution_plan)
        # 追加のカスタマイズ
        return organization

トラブルシューティング

よくある問題

  1. インポートエラー: パッケージが正しくインストールされているか確認
  2. 実行タイムアウト: execution_timeoutを増やす
  3. メモリ不足: max_agentsを減らす

ログの確認

import logging
logging.basicConfig(level=logging.DEBUG)

ライセンス

MIT License

貢献

プルリクエストやイシューの報告を歓迎します。

技術仕様

  • 言語: Python 3.10+
  • 非同期処理: asyncio
  • データ構造: dataclasses, enum
  • 通信: queue-based message passing
  • アーキテクチャ: マイクロサービス風マルチエージェント

今後の計画

  • LLMとの統合強化
  • Web UIの追加
  • パフォーマンス最適化
  • 機械学習による組織最適化
  • Docker対応
  • API サーバー化

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors