@aws/agentcore 0.3.0-preview.1.0 → 0.3.0-preview.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap +173 -44
- package/dist/assets/agents/AGENTS.md +13 -2
- package/dist/assets/container/python/Dockerfile +24 -0
- package/dist/assets/container/python/dockerignore.template +20 -0
- package/dist/assets/python/autogen/base/gitignore.template +1 -0
- package/dist/assets/python/autogen/base/mcp_client/__init__.py +1 -0
- package/dist/assets/python/autogen/base/model/__init__.py +1 -0
- package/dist/assets/python/autogen/base/pyproject.toml +0 -1
- package/dist/assets/python/crewai/base/gitignore.template +1 -0
- package/dist/assets/python/crewai/base/model/__init__.py +1 -0
- package/dist/assets/python/crewai/base/model/load.py +2 -2
- package/dist/assets/python/crewai/base/pyproject.toml +0 -1
- package/dist/assets/python/googleadk/base/gitignore.template +1 -0
- package/dist/assets/python/googleadk/base/main.py +10 -3
- package/dist/assets/python/googleadk/base/mcp_client/__init__.py +1 -0
- package/dist/assets/python/googleadk/base/model/__init__.py +1 -0
- package/dist/assets/python/googleadk/base/pyproject.toml +0 -1
- package/dist/assets/python/langchain_langgraph/base/gitignore.template +1 -0
- package/dist/assets/python/langchain_langgraph/base/main.py +8 -3
- package/dist/assets/python/langchain_langgraph/base/mcp_client/__init__.py +1 -0
- package/dist/assets/python/langchain_langgraph/base/model/__init__.py +1 -0
- package/dist/assets/python/langchain_langgraph/base/model/load.py +2 -2
- package/dist/assets/python/langchain_langgraph/base/pyproject.toml +0 -1
- package/dist/assets/python/openaiagents/base/gitignore.template +1 -0
- package/dist/assets/python/openaiagents/base/main.py +13 -6
- package/dist/assets/python/openaiagents/base/mcp_client/__init__.py +1 -0
- package/dist/assets/python/openaiagents/base/model/__init__.py +1 -0
- package/dist/assets/python/openaiagents/base/pyproject.toml +0 -1
- package/dist/assets/python/strands/base/gitignore.template +1 -1
- package/dist/assets/python/strands/base/main.py +16 -9
- package/dist/assets/python/strands/base/mcp_client/__init__.py +1 -0
- package/dist/assets/python/strands/base/model/__init__.py +1 -0
- package/dist/assets/python/strands/base/model/load.py +2 -2
- package/dist/assets/python/strands/base/pyproject.toml +5 -6
- package/dist/assets/python/strands/capabilities/memory/__init__.py +0 -0
- package/dist/cli/index.mjs +306 -443
- package/dist/lib/constants.d.ts +12 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +22 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/packaging/container.d.ts +10 -0
- package/dist/lib/packaging/container.d.ts.map +1 -0
- package/dist/lib/packaging/container.js +78 -0
- package/dist/lib/packaging/container.js.map +1 -0
- package/dist/lib/packaging/index.d.ts +5 -1
- package/dist/lib/packaging/index.d.ts.map +1 -1
- package/dist/lib/packaging/index.js +10 -2
- package/dist/lib/packaging/index.js.map +1 -1
- package/dist/lib/packaging/node.d.ts +6 -1
- package/dist/lib/packaging/node.d.ts.map +1 -1
- package/dist/lib/packaging/node.js +2 -1
- package/dist/lib/packaging/node.js.map +1 -1
- package/dist/lib/packaging/python.d.ts +7 -1
- package/dist/lib/packaging/python.d.ts.map +1 -1
- package/dist/lib/packaging/python.js +6 -4
- package/dist/lib/packaging/python.js.map +1 -1
- package/dist/schema/constants.d.ts +5 -0
- package/dist/schema/constants.d.ts.map +1 -1
- package/dist/schema/constants.js +11 -1
- package/dist/schema/constants.js.map +1 -1
- package/dist/schema/schemas/agent-env.d.ts +6 -0
- package/dist/schema/schemas/agent-env.d.ts.map +1 -1
- package/dist/schema/schemas/agent-env.js +8 -2
- package/dist/schema/schemas/agent-env.js.map +1 -1
- package/dist/schema/schemas/agentcore-project.d.ts +6 -0
- package/dist/schema/schemas/agentcore-project.d.ts.map +1 -1
- package/dist/schema/schemas/mcp.d.ts.map +1 -1
- package/dist/schema/schemas/mcp.js +3 -1
- package/dist/schema/schemas/mcp.js.map +1 -1
- package/package.json +34 -1
- package/scripts/bump-version.ts +31 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -87,7 +87,7 @@ def load_model() -> LLM:
|
|
|
87
87
|
# CrewAI requires OPENAI_API_KEY env var (ignores api_key parameter)
|
|
88
88
|
os.environ["OPENAI_API_KEY"] = api_key
|
|
89
89
|
return LLM(
|
|
90
|
-
model="openai/gpt-
|
|
90
|
+
model="openai/gpt-4.1",
|
|
91
91
|
api_key=api_key
|
|
92
92
|
)
|
|
93
93
|
{{/if}}
|
|
@@ -127,7 +127,7 @@ def load_model() -> LLM:
|
|
|
127
127
|
# CrewAI requires GEMINI_API_KEY env var (ignores api_key parameter)
|
|
128
128
|
os.environ["GEMINI_API_KEY"] = api_key
|
|
129
129
|
return LLM(
|
|
130
|
-
model="gemini/gemini-2.
|
|
130
|
+
model="gemini/gemini-2.5-flash",
|
|
131
131
|
api_key=api_key
|
|
132
132
|
)
|
|
133
133
|
{{/if}}
|
|
@@ -22,12 +22,18 @@ def add_numbers(a: int, b: int) -> int:
|
|
|
22
22
|
return a + b
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
# Set environment variables for model authentication
|
|
26
|
-
load_model()
|
|
27
|
-
|
|
28
25
|
# Get MCP Toolset
|
|
29
26
|
mcp_toolset = [get_streamable_http_mcp_client()]
|
|
30
27
|
|
|
28
|
+
_credentials_loaded = False
|
|
29
|
+
|
|
30
|
+
def ensure_credentials_loaded():
|
|
31
|
+
global _credentials_loaded
|
|
32
|
+
if not _credentials_loaded:
|
|
33
|
+
load_model()
|
|
34
|
+
_credentials_loaded = True
|
|
35
|
+
|
|
36
|
+
|
|
31
37
|
# Agent Definition
|
|
32
38
|
agent = Agent(
|
|
33
39
|
model=MODEL_ID,
|
|
@@ -40,6 +46,7 @@ agent = Agent(
|
|
|
40
46
|
|
|
41
47
|
# Session and Runner
|
|
42
48
|
async def setup_session_and_runner(user_id, session_id):
|
|
49
|
+
ensure_credentials_loaded()
|
|
43
50
|
session_service = InMemorySessionService()
|
|
44
51
|
session = await session_service.create_session(
|
|
45
52
|
app_name=APP_NAME, user_id=user_id, session_id=session_id
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -9,8 +9,13 @@ from mcp_client.client import get_streamable_http_mcp_client
|
|
|
9
9
|
app = BedrockAgentCoreApp()
|
|
10
10
|
log = app.logger
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
_llm = None
|
|
13
|
+
|
|
14
|
+
def get_or_create_model():
|
|
15
|
+
global _llm
|
|
16
|
+
if _llm is None:
|
|
17
|
+
_llm = load_model()
|
|
18
|
+
return _llm
|
|
14
19
|
|
|
15
20
|
|
|
16
21
|
# Define a simple function tool
|
|
@@ -35,7 +40,7 @@ async def invoke(payload, context):
|
|
|
35
40
|
mcp_tools = await mcp_client.get_tools()
|
|
36
41
|
|
|
37
42
|
# Define the agent using create_react_agent
|
|
38
|
-
graph = create_react_agent(
|
|
43
|
+
graph = create_react_agent(get_or_create_model(), tools=mcp_tools + tools)
|
|
39
44
|
|
|
40
45
|
# Process the user prompt
|
|
41
46
|
prompt = payload.get("prompt", "What can you help me with?")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -80,7 +80,7 @@ def _get_api_key() -> str:
|
|
|
80
80
|
def load_model() -> ChatOpenAI:
|
|
81
81
|
"""Get authenticated OpenAI model client."""
|
|
82
82
|
return ChatOpenAI(
|
|
83
|
-
model="gpt-
|
|
83
|
+
model="gpt-4.1",
|
|
84
84
|
api_key=_get_api_key()
|
|
85
85
|
)
|
|
86
86
|
{{/if}}
|
|
@@ -117,7 +117,7 @@ def _get_api_key() -> str:
|
|
|
117
117
|
def load_model() -> ChatGoogleGenerativeAI:
|
|
118
118
|
"""Get authenticated Gemini model client."""
|
|
119
119
|
return ChatGoogleGenerativeAI(
|
|
120
|
-
model="gemini-2.
|
|
120
|
+
model="gemini-2.5-flash",
|
|
121
121
|
api_key=_get_api_key()
|
|
122
122
|
)
|
|
123
123
|
{{/if}}
|
|
@@ -7,12 +7,17 @@ from mcp_client.client import get_streamable_http_mcp_client
|
|
|
7
7
|
app = BedrockAgentCoreApp()
|
|
8
8
|
log = app.logger
|
|
9
9
|
|
|
10
|
-
# Set environment variables for model authentication
|
|
11
|
-
load_model()
|
|
12
|
-
|
|
13
10
|
# Get MCP Server
|
|
14
11
|
mcp_server = get_streamable_http_mcp_client()
|
|
15
12
|
|
|
13
|
+
_credentials_loaded = False
|
|
14
|
+
|
|
15
|
+
def ensure_credentials_loaded():
|
|
16
|
+
global _credentials_loaded
|
|
17
|
+
if not _credentials_loaded:
|
|
18
|
+
load_model()
|
|
19
|
+
_credentials_loaded = True
|
|
20
|
+
|
|
16
21
|
|
|
17
22
|
# Define a simple function tool
|
|
18
23
|
@function_tool
|
|
@@ -23,13 +28,15 @@ def add_numbers(a: int, b: int) -> int:
|
|
|
23
28
|
|
|
24
29
|
# Define the agent execution
|
|
25
30
|
async def main(query):
|
|
31
|
+
ensure_credentials_loaded()
|
|
26
32
|
try:
|
|
27
33
|
async with mcp_server as server:
|
|
28
34
|
active_servers = [server] if server else []
|
|
29
|
-
# Currently defaults to GPT-4.1
|
|
30
|
-
# https://openai.github.io/openai-agents-python/models/
|
|
31
35
|
agent = Agent(
|
|
32
|
-
name="{{ name }}",
|
|
36
|
+
name="{{ name }}",
|
|
37
|
+
model="gpt-4.1",
|
|
38
|
+
mcp_servers=active_servers,
|
|
39
|
+
tools=[add_numbers]
|
|
33
40
|
)
|
|
34
41
|
result = await Runner.run(agent, query)
|
|
35
42
|
return result
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -42,14 +42,19 @@ def agent_factory():
|
|
|
42
42
|
return get_or_create_agent
|
|
43
43
|
get_or_create_agent = agent_factory()
|
|
44
44
|
{{else}}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
_agent = None
|
|
46
|
+
|
|
47
|
+
def get_or_create_agent():
|
|
48
|
+
global _agent
|
|
49
|
+
if _agent is None:
|
|
50
|
+
_agent = Agent(
|
|
51
|
+
model=load_model(),
|
|
52
|
+
system_prompt="""
|
|
53
|
+
You are a helpful assistant. Use tools when appropriate.
|
|
54
|
+
""",
|
|
55
|
+
tools=tools+[mcp_client]
|
|
56
|
+
)
|
|
57
|
+
return _agent
|
|
53
58
|
{{/if}}
|
|
54
59
|
|
|
55
60
|
|
|
@@ -61,8 +66,10 @@ async def invoke(payload, context):
|
|
|
61
66
|
session_id = getattr(context, 'session_id', 'default-session')
|
|
62
67
|
user_id = getattr(context, 'user_id', 'default-user')
|
|
63
68
|
agent = get_or_create_agent(session_id, user_id)
|
|
64
|
-
|
|
69
|
+
{{else}}
|
|
70
|
+
agent = get_or_create_agent()
|
|
65
71
|
{{/if}}
|
|
72
|
+
|
|
66
73
|
# Execute and format response
|
|
67
74
|
stream = agent.stream_async(payload.get("prompt"))
|
|
68
75
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -80,7 +80,7 @@ def load_model() -> OpenAIModel:
|
|
|
80
80
|
"""Get authenticated OpenAI model client."""
|
|
81
81
|
return OpenAIModel(
|
|
82
82
|
client_args={"api_key": _get_api_key()},
|
|
83
|
-
model_id="gpt-
|
|
83
|
+
model_id="gpt-4.1",
|
|
84
84
|
)
|
|
85
85
|
{{/if}}
|
|
86
86
|
{{#if (eq modelProvider "Gemini")}}
|
|
@@ -118,6 +118,6 @@ def load_model() -> GeminiModel:
|
|
|
118
118
|
"""Get authenticated Gemini model client."""
|
|
119
119
|
return GeminiModel(
|
|
120
120
|
client_args={"api_key": _get_api_key()},
|
|
121
|
-
model_id="gemini-2.
|
|
121
|
+
model_id="gemini-2.5-flash",
|
|
122
122
|
)
|
|
123
123
|
{{/if}}
|
|
@@ -9,14 +9,13 @@ description = "AgentCore Runtime Application using Strands SDK"
|
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"anthropic >= 0.30.0",
|
|
13
|
-
"aws-opentelemetry-distro",
|
|
12
|
+
{{#if (eq modelProvider "Anthropic")}}"anthropic >= 0.30.0",
|
|
13
|
+
{{/if}}"aws-opentelemetry-distro",
|
|
14
14
|
"bedrock-agentcore >= 1.0.3",
|
|
15
15
|
"botocore[crt] >= 1.35.0",
|
|
16
|
-
"google-genai >= 1.0.0",
|
|
17
|
-
"openai >= 1.0.0",
|
|
18
|
-
"
|
|
19
|
-
"strands-agents >= 1.13.0",
|
|
16
|
+
{{#if (eq modelProvider "Gemini")}}"google-genai >= 1.0.0",
|
|
17
|
+
{{/if}}{{#if (eq modelProvider "OpenAI")}}"openai >= 1.0.0",
|
|
18
|
+
{{/if}}"strands-agents >= 1.13.0",
|
|
20
19
|
]
|
|
21
20
|
|
|
22
21
|
[tool.hatch.build.targets.wheel]
|
|
File without changes
|