AWS bedrock-agentcore documentation change
Summary
Removed Microsoft AutoGen and CrewAI framework documentation and code examples from integration guide
Security assessment
This change removes support documentation for two third-party frameworks but shows no evidence of security vulnerabilities or security-related reasons for removal. It appears to be a routine content update or deprecation of certain integration examples.
Diff
diff --git a/bedrock-agentcore/latest/devguide/using-any-agent-framework.md b/bedrock-agentcore/latest/devguide/using-any-agent-framework.md index b806c93c8..84cfbdbfe 100644 --- a//bedrock-agentcore/latest/devguide/using-any-agent-framework.md +++ b//bedrock-agentcore/latest/devguide/using-any-agent-framework.md @@ -5 +5 @@ -Strands AgentsLangGraphGoogle ADKOpenAI Agents SDKMicrosoft AutoGenCrewAI +Strands AgentsLangGraphGoogle ADKOpenAI Agents SDK @@ -21,4 +20,0 @@ You can use open source AI frameworks to create an agent or tool. This topic sho - * Microsoft AutoGen - - * CrewAI - @@ -221,144 +216,0 @@ For the full example, see [https://github.com/awslabs/amazon-bedrock-agentcore-s -## Microsoft AutoGen - -For the full example, see [https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/03-integrations/agentic-frameworks/autogen](https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/03-integrations/agentic-frameworks/autogen). - - - from autogen_agentchat.agents import AssistantAgent - from autogen_agentchat.ui import Console - from autogen_ext.models.openai import OpenAIChatCompletionClient - import asyncio - import logging - - # Set up logging - logging.basicConfig( - level=logging.DEBUG, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' - ) - logger = logging.getLogger("autogen_agent") - - # Initialize the model client - model_client = OpenAIChatCompletionClient( - model="gpt-4o", - ) - - # Define a simple function tool that the agent can use - async def get_weather(city: str) -> str: - """Get the weather for a given city.""" - return f"The weather in {city} is 73 degrees and Sunny." - - # Define an AssistantAgent with the model and tool - agent = AssistantAgent( - name="weather_agent", - model_client=model_client, - tools=[get_weather], - system_message="You are a helpful assistant.", - reflect_on_tool_use=True, - model_client_stream=True, # Enable streaming tokens - ) - - # Integrate with Bedrock AgentCore - from bedrock_agentcore.runtime import BedrockAgentCoreApp - app = BedrockAgentCoreApp() - - @app.entrypoint - async def main(payload): - # Process the user prompt - prompt = payload.get("prompt", "Hello! What can you help me with?") - - # Run the agent - result = await Console(agent.run_stream(task=prompt)) - - # Extract the response content for JSON serialization - if result and hasattr(result, 'messages') and result.messages: - last_message = result.messages[-1] - if hasattr(last_message, 'content'): - return {"result": last_message.content} - - return {"result": "No response generated"} - - app.run() - - -## CrewAI - -For the full example, see [https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/01-AgentCore-runtime/01-hosting-agent/04-crewai-with-bedrock-model/runtime-with-crewai-and-bedrock-models.ipynb](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/01-AgentCore-runtime/01-hosting-agent/04-crewai-with-bedrock-model/runtime-with-crewai-and-bedrock-models.ipynb). - - - from crewai import Agent, Crew, Process, Task - from crewai_tools import MathTool, WeatherTool - from bedrock_agentcore.runtime import BedrockAgentCoreApp - import argparse - import json - app = BedrockAgentCoreApp() - - # Define CrewAI agent - def create_researcher(): - """Create a researcher agent""" - from langchain_aws import ChatBedrock - - # Initialize LLM - llm = ChatBedrock( - model_id="anthropic.claude-3-sonnet-20240229-v1:0", - model_kwargs={"temperature": 0.1} - ) - - # Create researcher agent - return Agent( - role="Senior Research Specialist", - goal="Find comprehensive and accurate information about the topic", - backstory="You are an experienced research specialist with a talent for finding relevant information.", - verbose=True, - llm=llm, - tools=[MathTool(), WeatherTool()] - ) - - # Define the analyst agent - def create_analyst(): - .... - - # Create the crew - def create_crew(): - """Create and configure the CrewAI crew""" - # Create agents - researcher = create_researcher() - analyst = create_analyst() - - # Create research task with fields like description filled in as per crewAI docs - research_task = Task( - description="...", - agent=researcher, - expected_output="..." - ) - - analysis_task = Task( - ... - ) - - # Create crew - return Crew( - agents=[researcher, analyst], - tasks=[research_task, analysis_task], - process=Process.sequential, - verbose=True - ) - - # Initialize the crew - crew = create_crew() - - # Finally write your entrypoint - @app.entrypoint - def crewai_bedrock(payload): - """ - Invoke the crew with a payload - """ - user_input = payload.get("prompt") - - # Run the crew - result = crew.kickoff(inputs={"topic": user_input}) - - # Return the result - return result.raw - - if __name__ == "__main__": - app.run() -