diff --git a/src/sdk/agent.py b/src/sdk/agent.py index e1dc49de1..6499a51bf 100644 --- a/src/sdk/agent.py +++ b/src/sdk/agent.py @@ -45,6 +45,8 @@ def stop(self) -> None: self._running = False def set_metadata(self, key: str, value: Any) -> None: + if not isinstance(key, str) or not key.strip(): + raise ValueError("metadata key must be a non-empty string") self._metadata[key] = value def get_metadata(self, key: str, default: Any = None) -> Any: diff --git a/tests/test_sdk_agent_metadata.py b/tests/test_sdk_agent_metadata.py new file mode 100644 index 000000000..e23d1a555 --- /dev/null +++ b/tests/test_sdk_agent_metadata.py @@ -0,0 +1,26 @@ +import pytest + +from src.sdk.agent import BaseAgent + + +class _Agent(BaseAgent): + async def setup(self) -> None: + return None + + async def handle_task(self, task): + return task + + async def cleanup(self) -> None: + return None + + +def test_set_metadata_rejects_empty_key(): + agent = _Agent(agent_id="a1", name="agent") + with pytest.raises(ValueError): + agent.set_metadata("", "value") + + +def test_set_metadata_accepts_non_empty_key(): + agent = _Agent(agent_id="a1", name="agent") + agent.set_metadata("env", "prod") + assert agent.get_metadata("env") == "prod"