| name | aws-ai |
| description | Manage AWS AI/ML services (Bedrock, SageMaker, Kendra, Q Business) without MCP. Use when the user asks about foundation models, knowledge bases, agents, embeddings, SageMaker endpoints, Kendra search, or Amazon Q. |
AWS AI & Machine Learning / AWS AI ๋ฐ ๋จธ์ ๋ฌ๋
MCP ์์ด boto3/CLI๋ก ์ง์ AI/ML ์๋น์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
When to Use / ์ฌ์ฉ ์์
- "Bedrock ๋ชจ๋ธ ๋ชฉ๋ก" / "List Bedrock models"
- "Knowledge Base ์กฐํ" / "Query knowledge base"
- "SageMaker ์๋ํฌ์ธํธ ํ์ธ" / "Check SageMaker endpoints"
- "Kendra ์ธ๋ฑ์ค ๊ฒ์" / "Search Kendra index"
- "ํ
์คํธ ์๋ฒ ๋ฉ ์์ฑ" / "Generate text embeddings"
Amazon Bedrock / ํ์ด๋ฐ์ด์
๋ชจ๋ธ
๋ชจ๋ธ ๋ชฉ๋ก ๋ฐ ํธ์ถ
aws bedrock list-foundation-models --query 'modelSummaries[].{ID:modelId,Name:modelName,Provider:providerName}'
aws bedrock get-foundation-model --model-identifier anthropic.claude-sonnet-4-6-20250514-v1:0
import boto3, json
bedrock = boto3.client('bedrock')
bedrock_runtime = boto3.client('bedrock-runtime')
bedrock.list_foundation_models()
bedrock_runtime.converse(
modelId='anthropic.claude-sonnet-4-6-20250514-v1:0',
messages=[{'role': 'user', 'content': [{'text': 'Hello!'}]}],
inferenceConfig={'maxTokens': 1024}
)
bedrock_runtime.invoke_model(
modelId='amazon.titan-embed-text-v2:0',
body=json.dumps({'inputText': 'AWS Bedrock is great'})
)
Knowledge Bases / ์ง์ ๊ธฐ๋ฐ
bedrock_agent = boto3.client('bedrock-agent')
bedrock_agent_runtime = boto3.client('bedrock-agent-runtime')
bedrock_agent.list_knowledge_bases()
bedrock_agent_runtime.retrieve(
knowledgeBaseId='KB-xxxxx',
retrievalQuery={'text': 'How to configure VPC?'}
)
bedrock_agent_runtime.retrieve_and_generate(
input={'text': 'How to configure VPC?'},
retrieveAndGenerateConfiguration={
'type': 'KNOWLEDGE_BASE',
'knowledgeBaseConfiguration': {
'knowledgeBaseId': 'KB-xxxxx',
'modelArn': 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-6-20250514-v1:0'
}
}
)
Bedrock Agents / ์์ด์ ํธ
bedrock_agent.list_agents()
bedrock_agent.get_agent(agentId='AGENT-xxxxx')
bedrock_agent_runtime.invoke_agent(
agentId='AGENT-xxxxx',
agentAliasId='ALIAS-xxxxx',
sessionId='session-123',
inputText='What are the latest AWS announcements?'
)
Guardrails / ๊ฐ๋๋ ์ผ
bedrock.list_guardrails()
bedrock_runtime.apply_guardrail(
guardrailIdentifier='guardrail-xxxxx',
guardrailVersion='DRAFT',
source='INPUT',
content=[{'text': {'text': 'User input to check'}}]
)
Amazon SageMaker / ๋จธ์ ๋ฌ๋ ํ๋ซํผ
aws sagemaker list-endpoints --query 'Endpoints[].{Name:EndpointName,Status:EndpointStatus}'
aws sagemaker list-models --query 'Models[].{Name:ModelName,Created:CreationTime}'
aws sagemaker list-training-jobs --status-equals InProgress
sm = boto3.client('sagemaker')
sm_runtime = boto3.client('sagemaker-runtime')
sm.list_endpoints()
sm.describe_endpoint(EndpointName='my-endpoint')
sm_runtime.invoke_endpoint(
EndpointName='my-endpoint',
ContentType='application/json',
Body=json.dumps({'inputs': 'Hello world'})
)
sm.describe_training_job(TrainingJobName='my-training-job')
Amazon Kendra / ์ง๋ฅํ ๊ฒ์
kendra = boto3.client('kendra')
kendra.list_indices()
kendra.query(
IndexId='index-xxxxx',
QueryText='How to set up VPN?',
PageSize=5
)
kendra.list_data_sources(IndexId='index-xxxxx')
Amazon Q Business
q = boto3.client('qbusiness')
q.list_applications()
q.chat_sync(
applicationId='app-xxxxx',
userMessage='What is our company policy on remote work?'
)
Notes / ์ฐธ๊ณ
- Bedrock ๋ชจ๋ธ ์ ๊ทผ์ ๋ฆฌ์ ๋ณ๋ก ํ์ฑํ ํ์ (Model access์์ ์์ฒญ)
- Converse API๋ ๋ชจ๋ Bedrock ๋ชจ๋ธ์ ํตํฉ ์ธํฐํ์ด์ค ์ ๊ณต
- SageMaker ์๋ํฌ์ธํธ ํธ์ถ์
sagemaker-runtime ํด๋ผ์ด์ธํธ ์ฌ์ฉ
- Knowledge Base๋ OpenSearch Serverless ๋๋ ๊ธฐํ ๋ฒกํฐ DB ํ์