mirror of
https://github.com/microsoft/autogen.git
synced 2025-11-19 03:24:46 +00:00
<!-- Thank you for your contribution! Please review https://microsoft.github.io/autogen/docs/Contribute before opening a pull request. --> This PR has 3 main improvements. - Token streaming - Adds support for environment variables in the app settings - Updates AGS to persist Gallery entry in db. ## Adds Token Streaming in AGS. Agentchat now supports streaming of tokens via `ModelClientStreamingChunkEvent `. This PR is to track progress on supporting that in the AutoGen Studio UI. If `model_client_stream` is enabled in an assitant agent, then token will be streamed in UI. ```python streaming_assistant = AssistantAgent( name="assistant", model_client=model_client, system_message="You are a helpful assistant.", model_client_stream=True, # Enable streaming tokens. ) ``` https://github.com/user-attachments/assets/74d43d78-6359-40c3-a78e-c84dcb5e02a1 ## Env Variables Also adds support for env variables in AGS Settings You can set env variables that are loaded just before a team is run. Handy to set variable to be used by tools etc. <img width="1291" alt="image" src="https://github.com/user-attachments/assets/437b9d90-ccee-42f7-be5d-94ab191afd67" /> > Note: the set variables are available to the server process. <!-- Please add a reviewer to the assignee section when you create a PR. If you don't have the access to it, we will shortly find a reviewer and assign them to your PR. --> ## Why are these changes needed? <!-- Please give a short summary of the change and the problem this solves. --> ## Related issue number <!-- For example: "Closes #1234" --> Closes #5627 Closes #5662 Closes #5619 ## Checks - [ ] I've included any doc changes needed for <https://microsoft.github.io/autogen/>. See <https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to build and test documentation locally. - [ ] I've added tests (if relevant) corresponding to the changes introduced in this PR. - [ ] I've made sure all auto checks have passed.
100 lines
4.1 KiB
JSON
100 lines
4.1 KiB
JSON
{
|
|
"provider": "autogen_agentchat.teams.RoundRobinGroupChat",
|
|
"component_type": "team",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "A single AssistantAgent (with a calculator tool) in a RoundRobinGroupChat team. ",
|
|
"label": "default_team17",
|
|
"config": {
|
|
"participants": [
|
|
{
|
|
"provider": "autogen_agentchat.agents.AssistantAgent",
|
|
"component_type": "agent",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "An agent that provides assistance with tool use.",
|
|
"label": "AssistantAgent",
|
|
"config": {
|
|
"name": "assistant_agent",
|
|
"model_client": {
|
|
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
|
|
"component_type": "model",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "Chat completion client for OpenAI hosted models.",
|
|
"label": "OpenAIChatCompletionClient",
|
|
"config": {
|
|
"model": "gpt-4o-mini"
|
|
}
|
|
},
|
|
"tools": [
|
|
{
|
|
"provider": "autogen_core.tools.FunctionTool",
|
|
"component_type": "tool",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "Create custom tools by wrapping standard Python functions.",
|
|
"label": "FunctionTool",
|
|
"config": {
|
|
"source_code": "def calculator(a: float, b: float, operator: str) -> str:\n try:\n if operator == \"+\":\n return str(a + b)\n elif operator == \"-\":\n return str(a - b)\n elif operator == \"*\":\n return str(a * b)\n elif operator == \"/\":\n if b == 0:\n return \"Error: Division by zero\"\n return str(a / b)\n else:\n return \"Error: Invalid operator. Please use +, -, *, or /\"\n except Exception as e:\n return f\"Error: {str(e)}\"\n",
|
|
"name": "calculator",
|
|
"description": "A simple calculator that performs basic arithmetic operations",
|
|
"global_imports": [],
|
|
"has_cancellation_support": false
|
|
}
|
|
}
|
|
],
|
|
"handoffs": [],
|
|
"model_context": {
|
|
"provider": "autogen_core.model_context.UnboundedChatCompletionContext",
|
|
"component_type": "chat_completion_context",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "An unbounded chat completion context that keeps a view of the all the messages.",
|
|
"label": "UnboundedChatCompletionContext",
|
|
"config": {}
|
|
},
|
|
"description": "An agent that provides assistance with ability to use tools.",
|
|
"system_message": "You are a helpful assistant. Solve tasks carefully. When done, say TERMINATE.",
|
|
"model_client_stream": false,
|
|
"reflect_on_tool_use": false,
|
|
"tool_call_summary_format": "{result}"
|
|
}
|
|
}
|
|
],
|
|
"termination_condition": {
|
|
"provider": "autogen_agentchat.base.OrTerminationCondition",
|
|
"component_type": "termination",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"label": "OrTerminationCondition",
|
|
"config": {
|
|
"conditions": [
|
|
{
|
|
"provider": "autogen_agentchat.conditions.TextMentionTermination",
|
|
"component_type": "termination",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "Terminate the conversation if a specific text is mentioned.",
|
|
"label": "TextMentionTermination",
|
|
"config": {
|
|
"text": "TERMINATE"
|
|
}
|
|
},
|
|
{
|
|
"provider": "autogen_agentchat.conditions.MaxMessageTermination",
|
|
"component_type": "termination",
|
|
"version": 1,
|
|
"component_version": 1,
|
|
"description": "Terminate the conversation after a maximum number of messages have been exchanged.",
|
|
"label": "MaxMessageTermination",
|
|
"config": {
|
|
"max_messages": 10
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|