mcpField
A
agentscope-skill

agentscope-skill

github.com/agentscope-aiエージェントワークフロー133120 回インストール7 週間前に更新
リポジトリ

agentscope-skill について

AgentScope 2.xでの開発を支援するスキルガイドです。オープンソースのフレームワークによるLLMエージェントアプリの構築を扱い、SDKの構成や組み込みサービスを説明し、導入済みバージョンに沿ったAPI確認を促します。

主な機能

  1. 01エージェントとツールの構成
  2. 02マルチエージェントのオーケストレーション
  3. 03状態、メモリ、RAGのサポート
  4. 04ストリーミングイベントと対話の処理
  5. 05組み込みサービスとワークスペースの案内

活用シーン

  1. 01ツールを使うエージェントの構築
  2. 02複数エージェントの連携
  3. 03エージェントのストリーミング対話の処理
  4. 04AgentScopeサービスの実装

MCP 対応

AgentScope Toolkitは、ツールやスキルパスとともにMCPクライアントを受け入れます。ガイドでは、それらをエージェントアプリに組み込む方法を扱います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agentscope-ai/skills --skill agentscope-skill

インストール後、Claude Code で/agentscope-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
deployment_guide.md
multi_agent_orchestration.md
scripts/
view_module_signature.py
view_pypi_latest_version.sh

詳細

AgentScope 2.0

AgentScope は、単一のツール使用エージェントから連携するマルチエージェントシステムまで、LLM を活用したエージェントアプリケーションの構築と提供に使えるオープンソースのフレームワークです。アプリケーションのオーケストレーションとサービスインフラストラクチャを提供します。モデル推論は設定されたプロバイダーが担い、ツールは設定されたローカルまたはサンドボックスのバックエンドを通じて実行されます。次の 2 つのレイヤーで構成されています。

  • Agent SDK: エージェント、モデル、メッセージ、ツール、コンテキストと状態の管理、ミドルウェア、メモリー、RAG、マルチエージェントのオーケストレーション、ワークスペースなど、エージェントアプリケーションの構築に使うコンポーネントを提供します。
  • Service: SDK を基盤とするサービスレイヤーです。エージェントとセッションの管理、永続化、チーム、スケジューリング、チャネル、リソース管理のための API と、Web UI のサンプルを提供します。

このスキルは AgentScope 2.x に対応しており、2.0.8 を基にしています。API のシグネチャと動作は、ユーザーの環境に実際にインストールされている SDK のバージョンに従ってください。agentscope-runtime と agentscope-studio は 2.x と互換性がありません。代わりに、組み込みのサービス機能とワークスペース機能を使用してください。

インストール

Python 3.11 以降が必要です。

pip install agentscope
# or
uv pip install agentscope

コアコンセプトと基本的な例

  • Agent は推論と行動のループを管理します。最終的な Msg を得るには reply() を、イベントを得るには reply_stream() を使用します。launch_console() は、ターミナルでの対話、ツールの確認、割り込みに対応します。
  • プロバイダーモデルは、認証情報オブジェクトと model=... を指定して構築します。フォーマッターは引き続き利用できますが、モデルに設定します。プロバイダーがデフォルトのフォーマッターを選択するため、Agent には渡しません。
  • Toolkit はツールオブジェクト、MCP クライアント、スキルのパスやローダーを受け付けます。Python 関数は FunctionTool でラップし、独自のツールクラスには ToolBase を使用します。
  • Msg には型付きのコンテンツブロックが含まれます。UserMsg、AssistantMsg、SystemMsg はテキスト文字列も受け付ける便利なファクトリーです。バイナリメディアには、media_type を指定した URLSource または Base64Source とともに DataBlock を使用します。
  • イベント: 型付きイベントを通じて、エージェントの実行状況をアプリケーションに公開します。これには、返信とモデル呼び出しのライフサイクル、ストリーミングコンテンツ、ツールの呼び出しと結果、確認または外部実行の要求が含まれます。イベントは reply_stream() で受け取り、エージェントを再開するには、対話結果イベントを送り返します。Msg は会話のコンテンツを表し、イベントは実行と対話を記述します。
  • AgentState は会話と実行の状態を保持します。エージェントの設定には ContextConfig、InjectionConfig、ModelConfig、ReActConfig を使用します。ミドルウェアでは、メモリー、RAG、トレースなどのフックを追加できます。

次の例では、モデルと Python 関数ツールを組み合わせてエージェントを構築する方法を示します。

import asyncio
import os

from agentscope.agent import Agent
from agentscope.console import launch_console
from agentscope.credential import DashScopeCredential
from agentscope.model import DashScopeChatModel
from agentscope.tool import FunctionTool, Toolkit


def add(a: int, b: int) -> str:
    """Add two integers.

    Args:
        a: First integer.
        b: Second integer.
    """
    return str(a + b)


async def main() -> None:
    agent = Agent(
        name="Friday",
        system_prompt="You are a helpful assistant named Friday.",
        model=DashScopeChatModel(
            credential=DashScopeCredential(
                api_key=os.environ["DASHSCOPE_API_KEY"],
            ),
            model=os.environ.get("DASHSCOPE_MODEL", "qwen3.6-plus"),
        ),
        toolkit=Toolkit(tools=[FunctionTool(add)]),
    )
    await launch_console(agent)


if __name__ == "__main__":
    asyncio.run(main())

プログラムから対話する場合は、既存の agent を使い、非同期関数内で次のようにします。

from agentscope.message import UserMsg

result = await agent.reply(UserMsg(name="user", content="Hello!"))
print(result.get_text_content())

reply() はストリームイベントを消費します。ツールで確認または外部実行が必要な場合、独自の UI では reply_stream() を消費し、適切な UserConfirmResultEvent または ExternalExecutionResultEvent を送り返してエージェントを再開してください。その入力を待っている間にストリームが終了することがあります。ストリームの終了をすべて正常な完了と見なさないでください。このライフサイクルの参考として、コンソールの実装とイベントスキーマを使用してください。FunctionTool はデフォルトで許可を要求します。

マルチモーダル入力には、指定するメディアタイプに対応したモデルを使用してください。

from agentscope.message import DataBlock, TextBlock, URLSource, UserMsg

message = UserMsg(
    name="user",
    content=[
        TextBlock(text="Describe this image."),
        DataBlock(
            source=URLSource(
                url="https://example.com/image.png",
                media_type="image/png",
            ),
        ),
    ],
)

リポジトリの活用

アプリケーションコードを書く前に、既存の AgentScope チェックアウトを再利用するか、リポジトリをクローンして、サンプルや実装を確認してください。

git clone --branch main https://github.com/agentscope-ai/agentscope.git
# Inspect local changes before updating an existing checkout.
git -C agentscope status --short
git -C agentscope pull --ff-only origin main
リポジトリの構成
agentscope/
├── src/agentscope/
│   ├── agent/          # Agents and their configuration
│   ├── model/          # Chat model providers
│   ├── credential/     # Provider credentials
│   ├── console/        # Terminal interaction and event rendering
│   ├── formatter/      # Provider-specific message formatting
│   ├── message/        # Messages and typed content blocks
│   ├── tool/           # Toolkit, adapters, and built-in tools
│   ├── mcp/            # MCP clients and configuration
│   ├── skill/          # Skill loading
│   ├── state/          # Agent conversation and execution state
│   ├── middleware/     # Hooks, memory, RAG, tracing, and budgets
│   ├── event/          # Streaming and interaction events
│   ├── permission/     # Tool permissions and human confirmation
│   ├── pipeline/       # Multi-agent workflow abstractions
│   ├── workspace/      # Local and sandboxed execution backends
│   ├── rag/            # Retrieval building blocks
│   ├── embedding/      # Embedding model providers
│   ├── realtime/       # Realtime model interfaces
│   ├── tts/            # Text-to-speech models
│   └── app/            # Service APIs, storage, teams, channels, and hubs
├── examples/
│   ├── console/        # Terminal agent composition
│   ├── agent_service/  # Service configuration
│   ├── web_ui/         # Service frontend
│   ├── pipeline/       # Executor/verifier workflow
│   ├── a2a/            # Remote agent communication
│   ├── long_term_memory/
│   ├── rag/
│   ├── realtime/
│   └── workspace/
├── docs/               # News, roadmap, and changelog
└── tests/              # SDK and service behavior tests

チェックアウトを閲覧する際は、実際のディレクトリ構成を確認してください。タスクに合ったカテゴリのサンプルから始め、README とコードを読んでから、インポートをたどって src/agentscope/ を確認します。必要なクラスや機能を対象のディレクトリ内で検索してください。機能を再実装するより、既存のフレームワーク機能を優先して使用し、独自の動作を追加する前に基底クラスと継承されたメソッドを確認してください。

リソース

公式ドキュメント
GitHub リソース
参考資料

タスクでより詳しい情報が必要な場合は、以下のローカル資料を参照してください。

  • マルチエージェントオーケストレーション: 直接メッセージを受け渡す方法、ツールとしてのワーカー、GoalPipeline、Agent Team、A2A について説明しています。
  • デプロイガイド: 組み込みサービス、ストレージ、メッセージバス、ワークスペース、サンドボックスのバックエンドについて説明しています。
スクリプト
  • view_module_signature.py: アクティブな Python 環境内のモジュール、クラス、メソッドを、継承した API やソースの場所も含めて調べます。
  • view_pypi_latest_version.sh: 公開されている AgentScope の最新バージョンを確認します。

クエリの例:

python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.agent.Agent
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.agent.Agent.reply_stream
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.app.storage
bash /path/to/agentscope-skill/scripts/view_pypi_latest_version.sh

モジュールの検出では、すべてのオプションの連携機能をインポートするわけではありません。見つからないオプションのインポートが報告された場合は、タスクに必要な追加機能のみを、対象の pyproject.toml を使ってインストールしてください(例:service、model-gemini、model-ollama)。 PyPI ヘルパーが報告するのはリリースメタデータのみであり、インストール済みのバージョンではありません。

コードを提出する前に、公開エクスポート、コンストラクターとメソッドのシグネチャ、継承したメソッド、クリーンアップ要件を確認してください。対象バージョンでサンプルを検証し、オフラインでの動作確認にはフェイクモデルを使用してください。また、それらの確認と、実際のプロバイダー、Redis、コンテナー、デプロイを使った実行とを区別してください。

コメント