Experimental chatbot for querying design data in Autodesk Construction Cloud using Amazon Bedrock AgentCore and Autodesk Platform Services.
For any selected design file, the application extracts design properties using the Model Derivatives API, and caches them in JSON files. Then, an AI agent built with Strands Agents is initialized to answer various questions about the design using the following tools:
- Listing names of property categories available in the design (for example,
["Dimensions", "Structural Material"]) - Listing names and units of properties in given category (for example,
[{ "name": "Area", "units": "ft^2" }, { "name": "Volume", "units": "ft^3" }]) - Executing custom Python code (using AgentCore Code Interpreter Tool) with access to the JSON files with design data
The AI agent also uses AgentCore Memory for short-term memory (scoped to a specific user and design).
- Python 3.13 and uv
- AWS credentials with access to Amazon Bedrock AgentCore
- Create and activate a virtual environment:
uv venv && source .venv/bin/activate - Install dependencies:
uv sync - Setup AgentCore Memory:
python scripts/create_agentcore_memory.py SomeMemoryName - Update the
MEMORY_IDconstant in src/agent.py with the newly created memory ID - Configure the AgentCore Runtime:
agentcore configure -e app.py - Deploy to AgentCore Runtime:
agentcore launch
agentcore-setup.mp4
- Add the APS client ID
YmHvRac8ZID6GHVY3R9skAcVZ8joHmyYT1RH7mvic7kEpTM9as a custom integration to one of your ACC projects - Run the AgentCore Runtime locally:
uv run app.py - Serve the static website under the www folder:
python3 -m http.server -d www 8000 - Go to http://localhost:8000
- Login with your Autodesk credentials
- Select a design file, and start asking questions
agentcore-local-test.mp4
- Go to https://acc.autodesk.com, open one of your design files, and extract a design URN and an access token from the Network tab:
export APS_DESIGN_URN="dXJuOmFk..."
export APS_ACCESS_TOKEN="eyJhbGci..."- Invoke the remote agent with the design URN and access token:
agentcore invoke "{\"prompt\":\"What are the top 5 elements with largest volume?\", \"aps_design_urn\":\"$APS_DESIGN_URN\",\"aps_access_token\":\"$APS_ACCESS_TOKEN\"}"