Next Gen UI ACP Server
This module is part of the Next Gen UI Agent project.
Support for Agent Communication Protocol (ACP)
Important Note: ACP is depracated and is now part of A2A under the Linux Foundation!
Provides
NextGenUIACPAgent- code for easy implementation of the ACP server- processes data from every message after latest
role=user(including), from the first part if it containsArtifactor hastrajectorymetadata tool_namefrom thetrajectorymetadata is used as UI AgentInputData.typeif present- UI Agent
InputData.idis randomly generted - processes data in parallel, yields
Messagefor every processed piece of data, withrole=agentand oneArtifactcontainingtrajectorymetadata withtool_name=next_gen_ui_agent:- success - Artifact with
name=ui_blockandcontent_type=application/jsonand serializedUIBlockas acontent. - error - Artifact with
name=errorandcontent_type=text/plainand error message as acontent.
- success - Artifact with
- processes data from every message after latest
Installation
Additionally install AI framework support for interaction with inference e.g. next_gen_ui_beeai or any other.
Example
ACP Server
import logging
from collections.abc import AsyncGenerator
from acp_sdk import Artifact
from acp_sdk.models import Message
from acp_sdk.server import RunYield, RunYieldResume, Server
from next_gen_ui_acp import NextGenUIACPAgent
from next_gen_ui_beeai import BeeAIInference
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
server = Server()
agent = NextGenUIACPAgent(
component_system="rhds",
inference=BeeAIInference(model="ollama:llama3.2"),
)
@server.agent(name="next_gen_ui")
async def ngui_agent(
input: list[Message],
) -> AsyncGenerator[RunYield, RunYieldResume]:
return agent.run(input)
if __name__ == "__main__":
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
server.run(port=8001)