Skip to content

Commit 024a6e0

Browse files
committed
Add AgentSpec.run()
1 parent 6c02fba commit 024a6e0

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

coagent/core/types.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,26 @@ class AgentSpec:
250250

251251
_runtime: Runtime | None = None
252252

253+
async def run(self, msg: RawMessage, timeout: float = 0.5) -> RawMessage:
254+
self._assert_runtime()
255+
256+
addr = Address(name=self.name, id=uuid.uuid4().hex)
257+
return await self._runtime.channel.publish(
258+
addr, msg, request=True, timeout=timeout
259+
)
260+
253261
async def run_stream(self, msg: RawMessage) -> AsyncIterator[RawMessage]:
254-
if self._runtime is None:
255-
raise ValueError(f"AgentSpec {self.name} is not registered to a runtime.")
262+
self._assert_runtime()
256263

257264
addr = Address(name=self.name, id=uuid.uuid4().hex)
258265
result = self._runtime.channel.publish_multi(addr, msg)
259266
async for chunk in result:
260267
yield chunk
261268

269+
def _assert_runtime(self) -> None:
270+
if self._runtime is None:
271+
raise ValueError(f"AgentSpec {self.name} is not registered to a runtime.")
272+
262273

263274
class Runtime(abc.ABC):
264275
async def __aenter__(self):

0 commit comments

Comments
 (0)