API リファレンス
Member Agent APIの詳細なリファレンスです。
データモデル
AgentType
サポートされているMember Agentのタイプを定義する列挙型です。
from mixseek.models.member_agent import AgentType
class AgentType(str, Enum):
PLAIN = "plain"
WEB_SEARCH = "web_search"
CODE_EXECUTION = "code_execution"
利用可能な値:
PLAIN- 基本的な推論エージェントWEB_SEARCH- Web検索機能付きエージェントCODE_EXECUTION- コード実行機能付きエージェント
MemberAgentConfig
エージェントの設定を定義するPydanticモデルです。TOMLファイルから読み込まれます。
from mixseek.models.member_agent import MemberAgentConfig, AgentInstructions
config = MemberAgentConfig(
name="my-agent",
type="plain",
model="google-gla:gemini-2.5-flash",
temperature=0.2,
max_tokens=2048,
instructions=AgentInstructions(text="You are a helpful assistant."),
description="General purpose assistant"
)
フィールド:
name: str- エージェントの一意な識別子(必須)type: str- エージェントタイプ(必須、標準タイプ: “plain”, “web_search”, “code_execution”、またはカスタム文字列)model: str- Pydantic AIモデル識別子(デフォルト: “google-gla:gemini-2.5-flash”)temperature: float- 応答のランダム性(0.0-1.0、デフォルト: 0.2)max_tokens: int- 最大トークン数(1-8192、デフォルト: 2048)instructions: AgentInstructions- エージェントへの指示(必須)description: str- 人間が読める説明文(デフォルト: “”)timeout_seconds: int | None- HTTPリクエストタイムアウト(秒、デフォルト: None)max_retries: int- LLM API呼び出しの最大リトライ回数(デフォルト: 3、Pydantic AIに委任)tool_settings: ToolSettings | None- ツール固有の設定(デフォルト: None)plugin: PluginMetadata | None- カスタムプラグイン設定(デフォルト: None)metadata: dict[str, Any]- カスタムプラグイン用の追加メタデータ(デフォルト: {})
MemberAgentResult
エージェント実行の結果を表すモデルです。
from mixseek.models.member_agent import MemberAgentResult
# 成功結果の作成
result = MemberAgentResult.success(
content="Response content",
agent_name="my-agent",
agent_type="plain",
execution_time_ms=1500,
usage_info={"total_tokens": 150}
)
# エラー結果の作成
error_result = MemberAgentResult.error(
error_message="Failed to process request",
agent_name="my-agent",
agent_type="plain",
error_code="EXECUTION_ERROR"
)
フィールド:
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- リトライ試行回数max_retries_exceeded: bool- 最大リトライ回数超過フラグmetadata: dict[str, Any]- 追加メタデータ
メソッド:
success(content, agent_name, agent_type, **kwargs) -> MemberAgentResult- 成功結果を作成(クラスメソッド)error(error_message, agent_name, agent_type, **kwargs) -> MemberAgentResult- エラー結果を作成(クラスメソッド)is_success() -> bool- 成功判定is_error() -> bool- エラー判定
PluginMetadata
カスタムプラグインの設定を定義するモデルです。
from mixseek.models.member_agent import PluginMetadata
plugin = PluginMetadata(
path="/path/to/plugin.py",
agent_class="CustomAgent"
)
フィールド:
path: str- プラグインファイルのパス(必須)agent_class: str- プラグインクラス名(必須)
ToolSettings
ツール固有の設定を定義するモデルです。
from mixseek.models.member_agent import ToolSettings, WebSearchToolConfig
tool_settings = ToolSettings(
web_search=WebSearchToolConfig(max_results=10, timeout=30)
)
フィールド:
web_search: WebSearchToolConfig | None- Web検索ツール設定code_execution: CodeExecutionToolConfig | None- コード実行ツール設定
WebSearchToolConfig
Web検索ツールの設定を定義するモデルです。
from mixseek.models.member_agent import WebSearchToolConfig
web_search_config = WebSearchToolConfig(
max_results=10,
timeout=30
)
フィールド:
max_results: int- 最大検索結果数(1-50、デフォルト: 10)timeout: int- タイムアウト時間(秒、1-120、デフォルト: 30)
CodeExecutionToolConfig
コード実行ツールの設定を定義するモデルです。
重要: このモデルのフィールドはドキュメント専用です。実際のセキュリティ制約はプロバイダー側で制御され、設定できません。
from mixseek.models.member_agent import CodeExecutionToolConfig
code_config = CodeExecutionToolConfig(
expected_min_timeout_seconds=300,
expected_network_access=False
)
フィールド(すべてドキュメント専用):
provider_controlled: Literal[True]- プロバイダー制御フラグ(常にTrue)expected_min_timeout_seconds: int- 期待される最小タイムアウト(デフォルト: 300)expected_available_modules: list[str]- 期待される利用可能モジュールリストexpected_network_access: Literal[False]- 期待されるネットワークアクセス(常にFalse)
エージェントクラス
BaseMemberAgent
すべてのMember Agentの抽象基底クラスです。
from mixseek.agents.base import BaseMemberAgent
from mixseek.models.member_agent import MemberAgentConfig, MemberAgentResult
抽象メソッド:
async execute(task: str, context: dict[str, Any] | None, **kwargs) -> MemberAgentResultタスクを実行
引数:
task: str- 実行するタスクまたはプロンプトcontext: dict[str, Any] | None- オプションのコンテキスト情報**kwargs- 追加の実行パラメータ
戻り値:
MemberAgentResult例外: サブクラスで実装されていない場合
NotImplementedError
オーバーライド可能なメソッド:
async initialize() -> None- エージェントリソースの初期化async cleanup() -> None- エージェントリソースのクリーンアップ
プロパティ:
agent_name: str- エージェント名agent_type: str- エージェントタイプ
PlainMemberAgent
基本的な推論を行うエージェント実装です。
from mixseek.agents.plain import PlainMemberAgent
from mixseek.models.member_agent import MemberAgentConfig
config = MemberAgentConfig.from_toml("plain_agent.toml")
agent = PlainMemberAgent(config)
result = await agent.execute("Explain recursion in programming")
if result.is_success():
print(result.content)
コンストラクタ:
__init__(config: MemberAgentConfig)引数:
config- 検証済みのエージェント設定例外:
ValueError- 認証失敗時
メソッド:
async execute(task: str, context: dict[str, Any] | None, **kwargs) -> MemberAgentResultタスクを実行
リトライロジック付き
使用量制限チェック付き
WebSearchMemberAgent
Web検索機能を持つエージェント実装です。
from mixseek.agents.web_search import WebSearchMemberAgent
from mixseek.models.member_agent import MemberAgentConfig
config = MemberAgentConfig.from_toml("web_search_agent.toml")
agent = WebSearchMemberAgent(config)
result = await agent.execute("What are the latest AI developments?")
if result.is_success():
print(result.content)
コンストラクタ:
__init__(config: MemberAgentConfig)引数:
config- 検証済みのエージェント設定例外:
ValueError- 認証失敗時
メソッド:
async execute(task: str, context: dict[str, Any] | None, **kwargs) -> MemberAgentResultタスクを実行
Web検索ツールを自動的に使用
リトライロジック付き
CodeExecutionMemberAgent
コード実行機能を持つエージェント実装です。
重要: Anthropic Claudeモデルのみサポート。
from mixseek.agents.code_execution import CodeExecutionMemberAgent
from mixseek.models.member_agent import MemberAgentConfig
config = MemberAgentConfig.from_toml("code_execution_agent.toml")
agent = CodeExecutionMemberAgent(config)
result = await agent.execute("Calculate the factorial of 10")
if result.is_success():
print(result.content)
コンストラクタ:
__init__(config: MemberAgentConfig)引数:
config- 検証済みのエージェント設定例外:
ValueError- Anthropic Claude以外のモデルを使用時ValueError- 認証失敗時
メソッド:
async execute(task: str, context: dict[str, Any] | None, **kwargs) -> MemberAgentResultタスクを実行
コード実行ツールを自動的に使用
リトライロジック付き
ファクトリクラス
MemberAgentFactory
エージェントインスタンスを作成するファクトリクラスです。
from mixseek.agents.factory import MemberAgentFactory
from mixseek.models.member_agent import MemberAgentConfig
config = MemberAgentConfig.from_toml("agent.toml")
agent = MemberAgentFactory.create_agent(config)
result = await agent.execute("Your task here")
クラスメソッド:
create_agent(config: MemberAgentConfig) -> BaseMemberAgent設定に基づいてエージェントを作成
引数:
config- 検証済みのエージェント設定戻り値: 適切なタイプのエージェントインスタンス
例外:
ValueError- サポートされていないエージェントタイプ
register_agent(agent_type: str, agent_class: type[BaseMemberAgent]) -> Noneカスタムエージェントタイプを登録
引数:
agent_type- 登録するエージェントタイプ(文字列識別子)agent_class- エージェントクラス実装
get_supported_types() -> list[str]サポートされているエージェントタイプのリストを取得
戻り値: エージェントタイプの文字列リスト
設定ローダー
MemberAgentLoader
TOMLファイルからエージェント設定を読み込むローダークラスです。
from mixseek.config.member_agent_loader import MemberAgentLoader
loader = MemberAgentLoader()
config = loader.load_from_toml("agent.toml")
メソッド:
load_from_toml(file_path: str | Path) -> MemberAgentConfigTOMLファイルから設定を読み込む
引数:
file_path- TOMLファイルパス戻り値: 検証済みの
MemberAgentConfig例外:
FileNotFoundError- ファイルが存在しないValueError- TOML構文エラーValidationError- 設定検証エラー
load_from_dict(config_dict: dict[str, Any]) -> MemberAgentConfig辞書から設定を読み込む
引数:
config_dict- 設定辞書戻り値: 検証済みの
MemberAgentConfig例外:
ValidationError- 設定検証エラー
認証
create_authenticated_model
認証済みのPydantic AIモデルを作成します。
from mixseek.core.auth import create_authenticated_model
# Google Gemini
model = create_authenticated_model("google-gla:gemini-2.5-flash")
# Anthropic Claude
model = create_authenticated_model("anthropic:claude-sonnet-4-5-20250929")
関数:
create_authenticated_model(model_name: str) -> Model引数:
model_name- Pydantic AIモデル識別子戻り値: 認証済みモデルインスタンス
例外:
AuthenticationError- 認証失敗時
サポートされているプロバイダー:
Google Gemini:
google-gla:model-name環境変数:
GOOGLE_API_KEY
Vertex AI:
google-vertex:model-name環境変数:
GOOGLE_APPLICATION_CREDENTIALS,GOOGLE_CLOUD_PROJECT,GOOGLE_CLOUD_LOCATION
Anthropic Claude:
anthropic:model-name環境変数:
ANTHROPIC_API_KEY
ロギング
MemberAgentLogger
エージェント実行のロギングを管理します。
from mixseek.utils.logging import MemberAgentLogger
logger = MemberAgentLogger(log_level="INFO", enable_file_logging=True)
# 実行開始ログ
execution_id = logger.log_execution_start(
agent_name="my-agent",
agent_type="plain",
task="Sample task",
model_id="google-gla:gemini-2.5-flash"
)
# 実行完了ログ
logger.log_execution_complete(
execution_id=execution_id,
result=result,
usage_info={"total_tokens": 150}
)
# エラーログ
logger.log_error(
execution_id=execution_id,
error=exception,
context={"task": "Sample task"}
)
メソッド:
log_execution_start(agent_name, agent_type, task, model_id, **kwargs) -> str実行開始をログに記録
戻り値: 実行ID
log_execution_complete(execution_id, result, usage_info=None) -> None実行完了をログに記録
log_error(execution_id, error, context=None) -> Noneエラーをログに記録
使用例
基本的な使用方法
import asyncio
from mixseek.config.member_agent_loader import MemberAgentLoader
from mixseek.agents.factory import MemberAgentFactory
async def main():
# 設定を読み込む
loader = MemberAgentLoader()
config = loader.load_from_toml("plain_agent.toml")
# エージェントを作成
agent = MemberAgentFactory.create_agent(config)
# タスクを実行
result = await agent.execute("Explain the benefits of type safety")
if result.is_success():
print(f"Success: {result.content}")
print(f"Execution time: {result.execution_time_ms}ms")
if result.usage_info:
print(f"Tokens used: {result.usage_info.get('total_tokens')}")
else:
print(f"Error: {result.error_message}")
print(f"Error code: {result.error_code}")
asyncio.run(main())
カスタムエージェントの作成
from mixseek.agents.base import BaseMemberAgent
from mixseek.models.member_agent import MemberAgentConfig, MemberAgentResult, AgentInstructions
from mixseek.agents.factory import MemberAgentFactory
class CustomMemberAgent(BaseMemberAgent):
"""カスタム Member Agent 実装"""
async def execute(self, task: str, context=None, **kwargs):
# カスタムロジック
return MemberAgentResult.success(
content=f"Processed: {task}",
agent_name=self.agent_name,
agent_type=self.agent_type
)
# カスタムタイプを登録(文字列で指定)
custom_type = "custom"
MemberAgentFactory.register_agent(custom_type, CustomMemberAgent)
# 使用
config = MemberAgentConfig(
name="my-custom-agent",
type=custom_type,
model="google-gla:gemini-2.5-flash-lite",
instructions=AgentInstructions(text="Custom instructions")
)
agent = MemberAgentFactory.create_agent(config)
エラーハンドリング
from mixseek.core.auth import AuthenticationError
from pydantic import ValidationError
try:
config = loader.load_from_toml("agent.toml")
agent = MemberAgentFactory.create_agent(config)
result = await agent.execute("Task")
except FileNotFoundError as e:
print(f"Configuration file not found: {e}")
except ValidationError as e:
print(f"Invalid configuration: {e}")
except AuthenticationError as e:
print(f"Authentication failed: {e}")
except ValueError as e:
print(f"Error: {e}")
参考資料
Member Agent ガイド - 使用方法とトラブルシューティング
開発者ガイド - 開発環境のセットアップ
ソースコード:
モデル定義:
src/mixseek/models/member_agent.pyエージェント実装:
src/mixseek/agents/設定ローダー:
src/mixseek/config/member_agent_loader.py