mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-03 19:57:35 +00:00
- inlined AgenticSystemInstanceConfig so API feels more ergonomic - renamed it to AgentConfig, AgentInstance -> Agent - added a MemoryConfig and `memory` parameter - added `attachments` to input and `output_attachments` to the response - some naming changes
114 lines
3 KiB
Python
114 lines
3 KiB
Python
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
from .datatypes import * # noqa: F403
|
|
from typing import Protocol
|
|
|
|
from llama_models.schema_utils import json_schema_type, webmethod
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemCreateRequest(BaseModel):
|
|
agent_config: AgentConfig
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemCreateResponse(BaseModel):
|
|
# TODO: rename this to agent_id
|
|
system_id: str
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemSessionCreateRequest(BaseModel):
|
|
system_id: str
|
|
session_name: str
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemSessionCreateResponse(BaseModel):
|
|
session_id: str
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemTurnCreateRequest(BaseModel, AgentConfigOverridablePerTurn):
|
|
system_id: str
|
|
session_id: str
|
|
|
|
# TODO: figure out how we can simplify this and make why
|
|
# ToolResponseMessage needs to be here (it is function call
|
|
# execution from outside the system)
|
|
messages: List[
|
|
Union[
|
|
UserMessage,
|
|
ToolResponseMessage,
|
|
]
|
|
]
|
|
attachments: List[Attachment]
|
|
|
|
stream: Optional[bool] = False
|
|
|
|
|
|
@json_schema_type(
|
|
schema={"description": "Server side event (SSE) stream of these events"}
|
|
)
|
|
class AgenticSystemTurnResponseStreamChunk(BaseModel):
|
|
event: AgenticSystemTurnResponseEvent
|
|
|
|
|
|
@json_schema_type
|
|
class AgenticSystemStepResponse(BaseModel):
|
|
step: Step
|
|
|
|
|
|
class AgenticSystem(Protocol):
|
|
@webmethod(route="/agentic_system/create")
|
|
async def create_agentic_system(
|
|
self,
|
|
request: AgenticSystemCreateRequest,
|
|
) -> AgenticSystemCreateResponse: ...
|
|
|
|
@webmethod(route="/agentic_system/turn/create")
|
|
async def create_agentic_system_turn(
|
|
self,
|
|
request: AgenticSystemTurnCreateRequest,
|
|
) -> AgenticSystemTurnResponseStreamChunk: ...
|
|
|
|
@webmethod(route="/agentic_system/turn/get")
|
|
async def get_agentic_system_turn(
|
|
self,
|
|
agent_id: str,
|
|
turn_id: str,
|
|
) -> Turn: ...
|
|
|
|
@webmethod(route="/agentic_system/step/get")
|
|
async def get_agentic_system_step(
|
|
self, agent_id: str, turn_id: str, step_id: str
|
|
) -> AgenticSystemStepResponse: ...
|
|
|
|
@webmethod(route="/agentic_system/session/create")
|
|
async def create_agentic_system_session(
|
|
self,
|
|
request: AgenticSystemSessionCreateRequest,
|
|
) -> AgenticSystemSessionCreateResponse: ...
|
|
|
|
@webmethod(route="/agentic_system/session/get")
|
|
async def get_agentic_system_session(
|
|
self,
|
|
agent_id: str,
|
|
session_id: str,
|
|
turn_ids: Optional[List[str]] = None,
|
|
) -> Session: ...
|
|
|
|
@webmethod(route="/agentic_system/session/delete")
|
|
async def delete_agentic_system_session(
|
|
self, agent_id: str, session_id: str
|
|
) -> None: ...
|
|
|
|
@webmethod(route="/agentic_system/delete")
|
|
async def delete_agentic_system(
|
|
self,
|
|
agent_id: str,
|
|
) -> None: ...
|