Member Agent モデル

Member Agent関連のデータモデルの詳細なリファレンスです。

概要

Member Agentシステムは、設定、実行結果、リソース管理などのデータ構造をPydantic Modelで定義しています。すべてのモデルは型安全で、ランタイム検証を提供します。

設定モデル

MemberAgentConfig

エージェント設定を定義する中核モデルです。TOMLファイルから読み込まれます。

ソースコード: src/mixseek/models/member_agent.py:273

フィールド

必須フィールド:

  • name: str - エージェントの一意な識別子

  • type: AgentType - エージェントタイプ(plain/web_search/code_execution)

  • instructions: AgentInstructions - エージェントへの指示

モデル設定 (デフォルト値あり):

  • model: str - Pydantic AIモデル識別子(デフォルト: “google-gla:gemini-2.5-flash-lite”)

  • temperature: float | None - 応答のランダム性(0.0-2.0、デフォルト: None = モデルのデフォルト値を使用)

  • max_tokens: int | None - 最大トークン数(> 0、デフォルト: None = モデルのデフォルト値を使用)

  • stop_sequences: list[str] | None - 生成を停止するシーケンスのリスト(デフォルト: None)

  • top_p: float | None - Top-pサンプリングパラメータ(0.0-1.0、デフォルト: None = モデルのデフォルト値を使用)

  • seed: int | None - ランダムシード(OpenAI/Geminiでサポート、Anthropicでは非サポート、デフォルト: None)

動作設定:

  • description: str - 人間が読める説明文(デフォルト: “”)

  • timeout_seconds: int | None - HTTPリクエストタイムアウト(秒、>= 1、デフォルト: None = デフォルトタイムアウト使用)

  • max_retries: int - LLM API呼び出しの最大リトライ回数(>= 0、デフォルト: 3、Pydantic AIに委任)

  • tool_settings: ToolSettings | None - ツール固有の設定(デフォルト: None)

  • plugin: PluginMetadata | None - カスタムプラグイン設定(デフォルト: None)

メタデータ:

  • metadata: dict[str, Any] - カスタムプラグイン用の追加メタデータ(デフォルト: {})

バリデーション

  • model: モデル識別子の形式検証(google-gla:, openai:, anthropic: プレフィックス)

  • temperature: 0.0-2.0の範囲(Noneも許可)

  • max_tokens: > 0(Noneも許可、上限なし)

  • top_p: 0.0-1.0の範囲(Noneも許可)

使用例

from mixseek.models.member_agent import MemberAgentConfig, AgentType

config = MemberAgentConfig(
    name="my-agent",
    type=AgentType.PLAIN,
    model="google-gla:gemini-2.5-flash-lite",
    temperature=0.7,  # Optional: None uses model default
    max_tokens=4096,  # Optional: None uses model default
    stop_sequences=["END", "STOP"],  # Optional
    top_p=0.9,  # Optional: None uses model default
    seed=42,  # Optional: for reproducibility
    system_instruction="You are a helpful assistant.",  # str | None
    description="General purpose assistant"
)

AgentInstructions

エージェントへの指示を定義するモデルです。

ソースコード: src/mixseek/models/member_agent.py:27

フィールド

  • text: str - システム指示テキスト(最小10文字)

バリデーション

  • min_length=10: 最小10文字必須

使用例

from mixseek.models.member_agent import AgentInstructions

instructions = AgentInstructions(
    text="You are a data analyst. Analyze data and provide insights."
)

RetryConfig

リトライ動作を設定するモデルです。

ソースコード: src/mixseek/models/member_agent.py:33

フィールド

  • max_retries: int - 最大リトライ回数(0-10、デフォルト: 1)

  • initial_delay: float - 初期遅延時間(秒、0.1-60.0、デフォルト: 1.0)

  • backoff_factor: float - バックオフ係数(1.0-10.0、デフォルト: 2.0)

使用例

from mixseek.models.member_agent import RetryConfig

retry_config = RetryConfig(
    max_retries=3,
    initial_delay=1.0,
    backoff_factor=2.0
)

リトライ遅延の計算:

  • 1回目: initial_delay × (backoff_factor^0) = 1.0秒

  • 2回目: initial_delay × (backoff_factor^1) = 2.0秒

  • 3回目: initial_delay × (backoff_factor^2) = 4.0秒

実行結果モデル

MemberAgentResult

エージェント実行結果を表すモデルです。

ソースコード: src/mixseek/models/member_agent.py:51

フィールド

ステータスと結果:

  • status: ResultStatus - 実行ステータス(SUCCESS/ERROR/WARNING)

  • content: str - メイン結果コンテンツ

メタデータ:

  • agent_name: str - エージェント名

  • agent_type: str - エージェントタイプ

タイミング:

  • timestamp: datetime - 結果生成タイムスタンプ(自動生成)

  • execution_time_ms: int | None - 実行時間(ミリ秒)

使用量:

  • usage_info: dict[str, Any] | None - 使用量情報(トークン数など)

エラー情報:

  • error_message: str | None - エラーメッセージ

  • error_code: str | None - エラーコード

警告情報:

  • warning_message: str | None - 警告メッセージ

リトライ情報:

  • retry_count: int - リトライ試行回数(デフォルト: 0)

  • max_retries_exceeded: bool - 最大リトライ回数超過フラグ(デフォルト: False)

追加コンテキスト:

  • metadata: dict[str, Any] - 追加メタデータ(デフォルト: {})

ファクトリメソッド

success() - 成功結果を作成:

result = MemberAgentResult.success(
    content="Response content",
    agent_name="my-agent",
    agent_type="plain",
    execution_time_ms=1500,
    usage_info={"total_tokens": 150},
    retry_count=0,
    metadata={"version": "1.0"}
)

error() - エラー結果を作成:

result = MemberAgentResult.error(
    error_message="Failed to process request",
    agent_name="my-agent",
    agent_type="plain",
    error_code="EXECUTION_ERROR",
    execution_time_ms=500,
    retry_count=2,
    max_retries_exceeded=True
)

ヘルパーメソッド

  • is_success() -> bool - 成功判定

  • is_error() -> bool - エラー判定

使用例

from mixseek.models.member_agent import MemberAgentResult

# 成功結果の作成
result = MemberAgentResult.success(
    content="Analysis complete",
    agent_name="data-analyst",
    agent_type="plain",
    execution_time_ms=2500
)

# 結果の判定
if result.is_success():
    print(f"Success: {result.content}")
    print(f"Execution time: {result.execution_time_ms}ms")
else:
    print(f"Error: {result.error_message}")

ResultStatus

実行結果ステータスを定義する列挙型です。

ソースコード: src/mixseek/models/member_agent.py:43

  • SUCCESS = "success" - 成功

  • ERROR = "error" - エラー

  • WARNING = "warning" - 警告

使用例

from mixseek.models.member_agent import ResultStatus

status = ResultStatus.SUCCESS

ツール設定モデル

ToolSettings

ツール固有の設定を定義するモデルです。

ソースコード: src/mixseek/models/member_agent.py:194

フィールド

  • web_search: WebSearchToolConfig | None - Web検索ツール設定(デフォルト: None)

  • code_execution: CodeExecutionToolConfig | None - コード実行ツール設定(デフォルト: None)

使用例

from mixseek.models.member_agent import ToolSettings, WebSearchToolConfig

tool_settings = ToolSettings(
    web_search=WebSearchToolConfig(max_results=10, timeout=30)
)

WebSearchToolConfig

Web検索ツールの設定を定義するモデルです。

ソースコード: src/mixseek/models/member_agent.py:141

フィールド

  • max_results: int - 最大検索結果数(1-50、デフォルト: 10)

  • timeout: int - タイムアウト時間(秒、1-120、デフォルト: 30)

使用例

from mixseek.models.member_agent import WebSearchToolConfig

web_config = WebSearchToolConfig(
    max_results=10,
    timeout=30
)

CodeExecutionToolConfig

コード実行ツールの設定を定義するモデルです。

重要: このモデルのフィールドはドキュメント専用です。実際のセキュリティ制約はプロバイダー側(Anthropic)で制御され、設定できません。

ソースコード: src/mixseek/models/member_agent.py:148

フィールド(すべてドキュメント専用)

  • provider_controlled: Literal[True] - プロバイダー制御フラグ(常にTrue)

  • expected_min_timeout_seconds: int - 期待される最小タイムアウト(デフォルト: 300)

  • expected_available_modules: list[str] - 期待される利用可能モジュールリスト

  • expected_network_access: Literal[False] - 期待されるネットワークアクセス(常にFalse)

使用例

from mixseek.models.member_agent import CodeExecutionToolConfig

# 注意: これらの設定は実際には適用されません(ドキュメント専用)
code_config = CodeExecutionToolConfig(
    expected_min_timeout_seconds=300,
    expected_network_access=False
)

列挙型

AgentType

サポートされているエージェントタイプを定義する列挙型です。

ソースコード: src/mixseek/models/member_agent.py:15

  • PLAIN = "plain" - 基本的な推論エージェント

  • WEB_SEARCH = "web_search" - Web検索機能付きエージェント

  • CODE_EXECUTION = "code_execution" - コード実行機能付きエージェント

使用例

from mixseek.models.member_agent import AgentType

agent_type = AgentType.PLAIN
print(str(agent_type))  # "plain"

TOMLファイルとの連携

設定ファイル例

[agent]
name = "my-agent"
type = "plain"
model = "google-gla:gemini-2.5-flash"
temperature = 0.2
max_tokens = 2048
description = "General purpose assistant"

system_instruction = "You are a helpful assistant."
timeout_seconds = 60
max_retries = 3

[agent.tool_settings.web_search]
max_results = 10
timeout = 30

[agent.metadata]
version = "1.0.0"
author = "Your Name"

設定の読み込み

from mixseek.config.member_agent_loader import MemberAgentLoader

loader = MemberAgentLoader()
config = loader.load_from_toml("agent.toml")

# configはMemberAgentConfigインスタンス
print(config.name)  # "my-agent"
print(config.type)  # AgentType.PLAIN

モデル検証

すべてのPydantic Modelは自動検証機能を提供します:

バリデーションエラー

from pydantic import ValidationError
from mixseek.models.member_agent import MemberAgentConfig

try:
    config = MemberAgentConfig(
        name="test",
        type="invalid_type",  # 無効なタイプ
        instructions={"text": "test"}
    )
except ValidationError as e:
    print(e.errors())

スキーマ生成

schema = MemberAgentConfig.model_json_schema()

JSONシリアライズ

# オブジェクト → JSON
json_str = config.model_dump_json()

# JSON → オブジェクト
config = MemberAgentConfig.model_validate_json(json_str)

型安全性

すべてのモデルは型安全性を保証します:

  • 静的型チェック: mypyによる検証

  • ランタイム検証: Pydanticによる自動検証

  • 包括的なバリデーション: フィールド検証、範囲チェック、カスタムバリデーター

関連リソース